Notice: This documentation is archived. For the latest product features and documentation, please visit Dynamsoft Capture Vision Documentation.
DLR Release Notes - iOS 3.x
3.2.30 (05/15/2024)
Highlights
- Added confusable character distinguishing: this feature enhances the library’s ability to distinguish between common confusable character sets including {0, o, O}, {1, I, l}, and {5, s, S}, across popular fonts like Arial, Times New Roman, and Verdana, etc.
- Supported confusable character set customization: leveraging the new caching mechanism in the
CaptureVisionRouter (CVR)
module, the library now enables users to customize confusable character sets to meet the needs of specific scenarios. - Introduced the capability for users to influence the image processing process by altering intermediate results. Users can now clone, edit, and substitute intermediate result units within the callback function of each type. Subsequent operations will then proceed based on the updated unit.
- Introduced a feature for multi-condition filtering across products. Users can now specify filtering criteria for the task results of a
TargetROIDef
by implementing an OutputTaskSetting based on the task results of varying products from descendantTargetROIDef
objects. - Enhanced the
Offset
parameter inTargetROIDef
. Users now have the capability to meticulously customize components of the coordinate system, including the origin, X-axis, and Y-axis, for precise offset calculation. - Introduced a feature for grouping text lines. A text line group consists of spatially adjacent lines of text. Through the
TextLineSpecification
parameters, users can now do two things:- Put text lines in groups and also define the spatial relationship between different groups;
- Specify whether to concatenate text line results within a group, how to do the concatenation and whether to output the concatenated result.
Changelogs
Improved
- Improved the speed of
TextLineGroup
detection by optimizing internal logic. - Security update for
DynamsoftLabelRecognizer
library and other corresponding libraries. - Supported multiple instances of the class
CaptureVisionRouter
. - Supported the filter configuration of the characters that are not recognized by the Deep Neural Network via the Filter.txt file.
- Improved the usage count logic of the concurrent license mode.
- Improved the experience of local cache usage when failing to connect the license server. The renewal of the local cache is optimized as well.
- Improved the
CharacterModel
loading mechanism. If a model file is available under theDynamsoftResources.bundle
file, theCharacterModel
will be loaded autometically. Otherwise, it will be downloaded from the server.
New
- Added new APIs for users to obtain the cached character items and the character clusters:
- A new class
DSBufferedCharacterItemSet
to represent a collection of buffered character items and cluster information. - A new class
DSBufferedCharacterItem
to represent a basic item of the buffered characters with its image and features information. - A new class
DSCharacterCluster
to represent a character cluster generated from the collected buffered character items. - Added a new class
DSBufferedItemsManager
to manage the buffered character items. - Added a new method
getBufferedItemsManger
to theCaptureVisionRouter
class to get an object ofDSBufferedItemsManager
. - Added a new property
specificationName
to theTextLineResultItem
class to get the name of theTextLineSpecificationObject
that generated thisTextLineResultItem
. - Added a new method
getSpecificationName
to theDSRecognizedTextLineElement
class to get the name of theTextLineSpecificationObject
that generated thisDSRecognizedTextLineElement
. - Added new error codes:
DSErrorResultTypeMismatchIrreplaceable
DSErrorLicenseCacheUsed
DSErrorImageSizeNotMatch
DSErrorImagePixelFormatNotMatch
DSErrorSectionLevelResultIrreplaceable
DSErrorAxisDefinitionIncorrect
DSErrorTextLineGroupLayoutConflict
DSErrorTextLineGroupRegexConflict
- Added a new method
getRecognizedTextLinesResult
to theDSCapturedResult
class to get all the result items with the typeCRIT_TEXT_LINE
. - Added new virtual destructors to the following interfaces to prevent memory leaks.
- The following classes are migrated from
DynamsoftCore.framework
intoDynamsoftCaptureVision.framework
: - Added a new call back method
onShortLinesUnitReceived
to theDSIntermediateResultReceiver
class. - Added methods
pauseCapturing
andresumeCapturing
. Two new enumeration members,CapturedStatePaused
andCapturedStateResumed
, are added toDSCapturedState
as well. - Added a new property
resultUnitTypesOnlyForInput
to theObservationParameters
class to specify theinput only
result unit. - Added the following methods to the
RegionObjectElement
class to support the intermediate result modification.setLocation
clone
retain
release
- Added a new method
replace
to theDSIntermediateResultUnit
class to support the replacement of intermediate result units. - Added
setImageData
methods to the following classes: - Added new methods to the
DSPredetectedRegionsUnit
class to add, remove or set the predetected regions. - Added new methods to the
DSLineSegmentsUnit
class to add, remove or set the line segments. - Added new methods to the
DSTextZonesUnit
class to add, remove or set the text zones. Added a new class CTextZone to store the information of a single text zone. - Added a new method
setContours
to theDSContourUnit
class. - Added new methods to the
DSTextureDetectionResultUnit
class to set the X & Y spacing. - Added a new intermediate result unit,
DSShortLinesUnit
, to output the detected short lines. The corresponding enumeration memberDSIntermediateResultUnitTypeShortLines
is added to theDSIntermediateResultUnitType
. - Added the following methods to the
DSCapturedResultItem
classgetTargetROIDefName
getTaskName
retain
release
- Added the following methods to the
DSCapturedResult
class.retain
release
- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the
DSImagePixelFormat
. - Added return value for the
retain
method of theDSIntermediateResultUnit
class. The method will return the pointer of the currentDSIntermediateResultUnit
. - Added new methods to the
DSLocalizedTextLinesUnit
class to add, set or remove the localized text line elements. - Added new methods to the
DSRecognizedTextLinesUnit
class to add, set or remove the recognized text line elements. - Added a new method
setText
to theDSRecognizedTextLineElement
class. - Added the following methods to the
DSRecognizedTextLinesResult
class.retain
release
- Added new constructors to the following classes.
- Updated the template system
- Added new
LabelRecognizerTaskSettings
parameters.- Added
ConfusableCharactersPath
to define the path of the resource files that store the confusable characters’ information. - Added
ClusterSamplesCountThreshold
to specify the lowest required sample count for clustering.
- Added
- Added new
TextLineSpecification
parameters.- Added
ConfusableCharactersCorrection
to define which confusable characters you are going to distinguish. You can also specify the font type of the characters. - Added
ExpectedGroupCount
to define the count ofTextLineGroups
that might exist on the image.
- Added
- Added
StringLengthRange
forTextDetectionMode
. - Added
ReferenceTaskNameArray
underLocation.ReferenceObjectFilter
to filter the reference objects generated by the task name. - Added the support of the
OutputTaskSetting
definition. The following subparameters are available inOutputTaskSetting
object:OutputCondition
TaskResultArray
TargetROIDefName
TaskSettingNameArray
BackwardReferenceOutput
ReferenceTaskNameArray
ReferenceResultTypeArray
Operator
Name
Offset
parameter is optimized.- Added
ReferenceObjectType
to specify whether the reference object is an atomic object or the whole image. - Added
ReferenceXAxis
&ReferenceYAxis
to define the X & Y axis. - Modified
FirstPoint
,SecondPoint
,ThirdPoint
&FourthPoint
. You can specify whether the X or Y coordinate of the point is measured by percentage. - Deprecated
ReferenceObjectSize
Type.
- Added
- Added new
Changes
- Changed the logic of the
stopCapturing
method.DSCaptureResultReceiver
will not receive results afterstopCapturing
is triggered withwaitForRemainingTasks
false.- Support stop capturing after the
pauseCapturing
method is triggered.
- Changed the logic of the
capturedResultItemTypes
setting ofDSSimplifiedCaptureVisionSettings
:- If the result item types don’t match the specified template, the method
updateSettings
will return the error codeDSErrorParameterValueInvalid
with the message “The captured result item types do not match the task configurations in the template”. - Based on the
capturedResultItemTypes
setting, the irrelevant tasks will be removed from the template. - The
capturedResultItemTypes
should include at least one of theDSCapturedResultItemTypeBarcode
,DSCapturedResultItemTypeTextLine
,DSCapturedResultItemTypeDetectedQuad
,DSCapturedResultItemTypeNormalizedImage
. Otherwise, the methodupdateSettings
will return the error codeDSErrorParameterValueInvalid
with the message “The captured result item types should contain at least one task result type”.
- If the result item types don’t match the specified template, the method
- Refactored the
DSContour
class. Please view API reference -DSContour
class for more information. - Changed the internal logic of the property
resultUnitTypesOnlyForInput
ofDSObservationParameters
. The method only takes effect when the callback of the specified result unit is implemented.
Fixed
- Fixed a crash bug that might happen when triggering the
setNextImageToReturn
method of theDSImageSourceAdapter
class. - Fixed a crash bug of the Replace method of the
IntermediateResultUnit
class. The method will return the error codeEC_RESULT_TYPE_MISMATCH_IRREPLACEABLE
when the result type is mismatched. - Fixed a bug where error messages are not output when parsing the parameter templates.
- Fixed a bug where multiple results were output from the same text area.
- Fixed a bug where the capture might be blocked due to the network latency.
- Fixed the bugs of usage count. The usage count of text line recognition might be double counted when the intermediate results are output.
3.0.20 (12/07/2023)
DynamsoftLabelRecognizer
SDK has been revamped to integrate with DynamsoftCaptureVision (DCV)
architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually.
DynamsoftCaptureVision
architecture consists of:ImageSourceAdapter(ISA)
, the standard input interface for you to convert image data from different sources into the standard input image data. In addition,ISA
incorporates an image buffer management system that allows instant access to the buffered image data.CaptureVisionRouter (CVR)
, an engine for you to update templates, retrieve images fromISA
, coordinate corresponding functional products and dispatch the results to the receivers.- Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required.
- Result receiver interfaces. You can implement
CapturedResultReceiver (CRR)
to receive theCapturedResults
that output when the processing on an image is finalized. You can also implementIntermediateResultReceiver (IRR)
to get timely results from different stages of the workflow.
- The parameter template system has been comprehensively upgraded.
- Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file.
- Extended the feature of the ROI system. By configuring the
target ROI
parameters, you can not only specify anROI
on the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios. - The image processing parameters are separated from the task parameters so that the template settings become more clear and concise.
- The
intermediate result
system has been improved.- Achieved the
intermediate result
sharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable theintermediate result
sharing. The library can recognize all the reusable results automatically based on the template file you uploaded. - The readability and interactivity of the
intermediate results
are enhanced.IntermediateResultReceiver
allows you to receive up to 27 different types ofIntermediate results
. You can clearly read which stage of the algorithm each result is output from. In addition,IntermediateResultManager
allows you to intervene in the workflows by modifying theintermediate results
.
- Achieved the
The APIs of Dynamsoft Label Recognizer are comprehensively updated. Please follow the view [upgrade instructions]/label-recognition/docs-archive/mobile/programming/objectivec-swift/upgrade.html to update your code.