From: Dominic L. <ma...@us...> - 2005-06-06 20:55:39
|
Update of /cvsroot/robotflow/RobotFlow/Vision/n-files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8106 Modified Files: Makefile.am READ.n Added Files: READv2.n Log Message: removing camera-dependant control --- NEW FILE: READv2.n --- #!/usr/bin/env batchflow <?xml version="1.0"?> <Document category="RobotFlow:LABORIUS"> <Network type="subnet" name="MAIN"> <Node name="node_LOOP0_1" type="MAIN_PROCESS" x="-3397.000000" y="-618.000000"/> <NetInput name="NNET" node="node_LOOP0_1" terminal="NNET" object_type="" description="No description available"/> <NetInput name="DICT" node="node_LOOP0_1" terminal="DICT" object_type="" description="No description available"/> <NetInput name="SIGN_TRACKING_ACTIVATED" node="node_LOOP0_1" terminal="SIGN_TRACKING_ACTIVATED" object_type="any" description="The input"/> <NetOutput name="SENTENCE" node="node_LOOP0_1" terminal="SENTENCE" object_type="" description="The object from THEN or ELSE depending on COND"/> <NetInput name="BLACK_WHITE_LOOKUP" node="node_LOOP0_1" terminal="BLACK_WHITE_LOOKUP" object_type="any" description="No description available"/> <Note x="-3418" y="-384" visible="1" text="The MAIN network will load configuration from the files containing : - black and white color lookup - the neural network to use for recog - The dictionary to use * You can change this configuration by double clicking on the LoadFile blocks"/> </Network> <Network type="subnet" name="COMPONENTS_EXTRACT"> <Node name="node_Components_1" type="Components" x="467.000000" y="113.000000"> <Parameter name="XGAP" type="int" value="2" description=""/> <Parameter name="YGAP" type="int" value="2" description=""/> <Parameter name="NUM_COLOR" type="int" value="4" description=""/> <Parameter name="MIN_AREA" type="int" value="16" description=""/> </Node> <Node name="node_NOP_1" type="NOP" x="699.000000" y="113.000000"/> <Link from="node_Components_1" output="BLOBS" to="node_NOP_1" input="INPUT"/> <NetOutput name="COMPONENTS" node="node_NOP_1" terminal="OUTPUT" object_type="any" description="The output = The input"/> <NetInput name="IMAGE" node="node_Components_1" terminal="IMAGE" object_type="Image" description="The Image to extract colors from."/> <NetInput name="LOOKUP" node="node_Components_1" terminal="LOOKUP" object_type="ColorLookup" description="The color lookup to use"/> </Network> <Network type="subnet" name="MAIN_PROCESS"> <Node name="node_PROCESS_SEGMENTS_1" type="PROCESS_SEGMENTS" x="184.000000" y="321.000000"/> <Node name="node_IF_ACTIVATED_DO_4" type="IF_ACTIVATED_DO" x="721.000000" y="305.000000"/> <Node name="node_NOP_3" type="NOP" x="221.000000" y="183.000000"/> <Node name="node_Components_1" type="Components" x="-335.000000" y="341.000000"> <Parameter name="XGAP" type="int" value="1" description=""/> <Parameter name="YGAP" type="int" value="1" description=""/> <Parameter name="NUM_COLOR" type="int" value="2" description=""/> <Parameter name="MIN_AREA" type="int" value="16" description=""/> </Node> <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_4" input="SIGN_TRACKING_ACTIVATED"/> <Link from="node_Components_1" output="BLOBS" to="node_PROCESS_SEGMENTS_1" input="BLACK_WHITE_COMPONENTS"/> <NetInput name="NNET" node="node_PROCESS_SEGMENTS_1" terminal="NNET" object_type="" description="No description available"/> <NetInput name="DICT" node="node_PROCESS_SEGMENTS_1" terminal="DICT" object_type="" description="No description available"/> <NetOutput name="SENTENCE" node="node_IF_ACTIVATED_DO_4" terminal="OUTPUT" object_type="" description="The object from THEN or ELSE depending on COND"/> <NetInput name="SIGN_TRACKING_ACTIVATED" node="node_NOP_3" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="BLACK_WHITE_LOOKUP" node="node_Components_1" terminal="LOOKUP" object_type="ColorLookup" description="The color lookup to use"/> <NetInput name="RGB15_BINARIZED" node="node_Components_1" terminal="IMAGE" object_type="Image" description="The Image to extract colors from."/> <Note x="-1480" y="269" visible="1" text="Sony SNC-RZ30 Network Camera controller."/> <Note x="-1013" y="42" visible="1" text="Image must be converted to RGB15 from the camera before training."/> <Note x="-323" y="44" visible="1" text="From the components of the image, we try to extract a textual messages that are color coded (foreground color = text, background color = color of the sheet of paper)"/> <Note x="159" y="551" visible="1" text="Image segments are scaled and process by the neural network. We will look in the dictionary for words that match the best."/> <Note x="291" y="47" visible="1" text="SKIP_N is useful because the camera is too slow, if we don't use SKIP_N, the camera will be overloaded with commands, which creates a terrific lag."/> </Network> <Network type="subnet" name="PAN_TILT_CTRL"> <Node name="node_GenericPID_1" type="GenericPID" x="-605.000000" y="-237.000000"> <Parameter name="P_GAIN" type="float" value="0.5" description="Proportionnal gain."/> <Parameter name="I_GAIN" type="float" value="0.0" description="Integral gain."/> <Parameter name="D_GAIN" type="float" value="0.0" description="Derivative gain."/> <Parameter name="I_MAX" type="float" value="100" description="The maximum Integral value."/> </Node> <Node name="node_Constant_1" type="Constant" x="-800.000000" y="-229.000000"> <Parameter name="VALUE" type="bool" value="false" description="The value"/> </Node> <Node name="node_GenericPID_2" type="GenericPID" x="-608.000000" y="-154.000000"> <Parameter name="P_GAIN" type="float" value="0.5" description="Proportionnal gain."/> <Parameter name="I_GAIN" type="float" value="0.0" description="Integral gain."/> <Parameter name="D_GAIN" type="float" value="0.0" description="Derivative gain."/> <Parameter name="I_MAX" type="float" value="100" description="The maximum Integral value."/> </Node> <Node name="node_Constant_2" type="Constant" x="-796.000000" y="-146.000000"> <Parameter name="VALUE" type="bool" value="false" description="The value"/> </Node> <Node name="node_NOP_1" type="NOP" x="-1393.000000" y="-271.000000"/> <Node name="node_NOP_2" type="NOP" x="-1393.000000" y="-183.000000"/> <Node name="node_NOP_3" type="NOP" x="-1393.000000" y="-153.000000"/> <Node name="node_IF_1" type="IF" x="-294.000000" y="-253.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_isNil_1" type="isNil" x="-401.000000" y="-270.000000"/> <Node name="node_NilObject_1" type="NilObject" x="-507.000000" y="-254.000000"/> <Node name="node_IF_2" type="IF" x="-296.000000" y="-168.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_isNil_2" type="isNil" x="-406.000000" y="-184.000000"/> <Node name="node_NilObject_2" type="NilObject" x="-485.000000" y="-168.000000"/> <Node name="node_TEST_SCALING_1" type="AUTO_SCALE" x="-921.000000" y="-245.000000"/> <Node name="node_TEST_SCALING_2" type="AUTO_SCALE" x="-916.000000" y="-161.000000"/> <Node name="node_NOP_4" type="NOP" x="-1392.000000" y="-85.000000"/> <Node name="node_NOP_5" type="NOP" x="-1394.000000" y="4.000000"/> <Node name="node_TEST_ZOOMING_1" type="AUTO_ZOOM" x="-936.000000" y="-61.000000"/> <Node name="node_Add_1" type="Add" x="-609.000000" y="-54.000000"/> <Node name="node_IF_3" type="IF" x="-294.000000" y="-70.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_isNil_3" type="isNil" x="-418.000000" y="-84.000000"/> <Node name="node_Constant_3" type="Constant" x="-497.000000" y="-69.000000"> <Parameter name="VALUE" type="int" value="0" description="The value"/> </Node> <Link from="node_Constant_1" output="VALUE" to="node_GenericPID_1" input="RESET"/> <Link from="node_Constant_2" output="VALUE" to="node_GenericPID_2" input="RESET"/> <Link from="node_isNil_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_NOP_1" output="OUTPUT" to="node_isNil_1" input="INPUT"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_1" input="THEN"/> <Link from="node_isNil_2" output="OUTPUT" to="node_IF_2" input="COND"/> <Link from="node_NilObject_2" output="VALUE" to="node_IF_2" input="THEN"/> <Link from="node_NOP_2" output="OUTPUT" to="node_isNil_2" input="INPUT"/> <Link from="node_NOP_1" output="OUTPUT" to="node_TEST_SCALING_1" input="DELTA"/> <Link from="node_NOP_3" output="OUTPUT" to="node_TEST_SCALING_1" input="ZOOM_FACTOR"/> <Link from="node_NOP_2" output="OUTPUT" to="node_TEST_SCALING_2" input="DELTA"/> <Link from="node_NOP_3" output="OUTPUT" to="node_TEST_SCALING_2" input="ZOOM_FACTOR"/> <Link from="node_TEST_SCALING_2" output="SCALE" to="node_GenericPID_2" input="EPSILON"/> <Link from="node_TEST_SCALING_1" output="SCALE" to="node_GenericPID_1" input="EPSILON"/> <Link from="node_GenericPID_2" output="OUTPUT" to="node_IF_2" input="ELSE"/> <Link from="node_GenericPID_1" output="OUTPUT" to="node_IF_1" input="ELSE"/> <Link from="node_NOP_1" output="OUTPUT" to="node_TEST_ZOOMING_1" input="DELTA_X"/> <Link from="node_NOP_2" output="OUTPUT" to="node_TEST_ZOOMING_1" input="DELTA_Y"/> <Link from="node_NOP_4" output="OUTPUT" to="node_TEST_ZOOMING_1" input="BOUNDARY"/> <Link from="node_TEST_ZOOMING_1" output="REL_ZOOM" to="node_Add_1" input="INPUT1"/> <Link from="node_NOP_5" output="OUTPUT" to="node_Add_1" input="INPUT2"/> <Link from="node_isNil_3" output="OUTPUT" to="node_IF_3" input="COND"/> <Link from="node_NOP_4" output="OUTPUT" to="node_isNil_3" input="INPUT"/> <Link from="node_Add_1" output="OUTPUT" to="node_IF_3" input="ELSE"/> <Link from="node_Constant_3" output="VALUE" to="node_IF_3" input="THEN"/> <NetInput name="DELTA_X" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="DELTA_Y" node="node_NOP_2" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="ZOOM_FACTOR" node="node_NOP_3" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="REL_PAN" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <NetOutput name="REL_TILT" node="node_IF_2" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <NetInput name="BOUNDARY" node="node_NOP_4" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="CURRENT_ZOOM" node="node_NOP_5" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="ABS_ZOOM" node="node_IF_3" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="-973" y="140" visible="1" text="According to DELTA_X and DELTA_Y and the BOUNDARY inputs, we will output incremental pan-tilt-zoom commands to center the color blobs in the image and get the maximum resolution possible."/> </Network> <Network type="subnet" name="SKIP_N"> <Node name="node_IF_1" type="IF" x="890.000000" y="-24.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="false" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_Equal_1" type="Equal" x="768.000000" y="-53.000000"/> <Node name="node_Constant_1" type="Constant" x="600.000000" y="-36.000000"> <Parameter name="VALUE" type="int" value="0" description="The value"/> </Node> <Node name="node_IterCount_1" type="IterCount" x="292.000000" y="-77.000000"/> <Node name="node_Modulo_1" type="Modulo" x="609.000000" y="-69.000000"/> <Node name="node_Constant_2" type="Constant" x="397.000000" y="-62.000000"> <Parameter name="VALUE" type="subnet_param" value="SKIP_N" description="The value"/> </Node> <Node name="node_NilObject_1" type="NilObject" x="732.000000" y="55.000000"/> <Link from="node_Equal_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_1" input="ELSE"/> <Link from="node_Modulo_1" output="REMAINDER" to="node_Equal_1" input="INPUT1"/> <Link from="node_Constant_1" output="VALUE" to="node_Equal_1" input="INPUT2"/> <Link from="node_IterCount_1" output="OUTPUT" to="node_Modulo_1" input="DIVIDEND"/> <Link from="node_Constant_2" output="VALUE" to="node_Modulo_1" input="DIVISOR"/> <NetInput name="INPUT" node="node_IF_1" terminal="THEN" object_type="any" description="What to do if the condition is true"/> <NetOutput name="OUTPUT" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="474" y="214" visible="1" text="Useful to skip N iteration (returning nilObject except when modulo = 0)"/> </Network> <Network type="subnet" name="AUTO_SCALE"> <Node name="node_NOP_1" type="NOP" x="-257.000000" y="-156.000000"/> <Node name="node_NOP_2" type="NOP" x="-746.000000" y="-100.000000"/> <Node name="node_Power_1" type="Power" x="-283.000000" y="-95.000000"/> <Node name="node_Mul_1" type="Mul" x="-432.000000" y="-86.000000"/> <Node name="node_Constant_2" type="Constant" x="-597.000000" y="16.000000"> <Parameter name="VALUE" type="float" value="-1" description="The value"/> </Node> <Node name="node_NOP_3" type="NOP" x="92.000000" y="-150.000000"/> <Node name="node_Constant_3" type="Constant" x="-446.000000" y="-136.000000"> <Parameter name="VALUE" type="float" value="1.1" description="The value"/> </Node> <Node name="node_Mul_2" type="Mul" x="-66.000000" y="-150.000000"/> <Node name="node_Sub_1" type="Sub" x="-571.000000" y="-92.000000"/> <Node name="node_Constant_1" type="Constant" x="-730.000000" y="-60.000000"> <Parameter name="VALUE" type="float" value="1" description="The value"/> </Node> <Link from="node_Mul_1" output="OUTPUT" to="node_Power_1" input="EXP"/> <Link from="node_Constant_2" output="VALUE" to="node_Mul_1" input="INPUT2"/> <Link from="node_Constant_3" output="VALUE" to="node_Power_1" input="BASE"/> <Link from="node_NOP_1" output="OUTPUT" to="node_Mul_2" input="INPUT1"/> <Link from="node_Power_1" output="OUTPUT" to="node_Mul_2" input="INPUT2"/> <Link from="node_Sub_1" output="OUTPUT" to="node_Mul_1" input="INPUT1"/> <Link from="node_NOP_2" output="OUTPUT" to="node_Sub_1" input="INPUT1"/> <Link from="node_Constant_1" output="VALUE" to="node_Sub_1" input="INPUT2"/> <Link from="node_Mul_2" output="OUTPUT" to="node_NOP_3" input="INPUT"/> <NetInput name="DELTA" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="ZOOM_FACTOR" node="node_NOP_2" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="SCALE" node="node_NOP_3" terminal="OUTPUT" object_type="any" description="The output = The input"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="-293" y="126" visible="1" text="Will scale DELTA value according to the ZOOM factor."/> </Network> <Network type="subnet" name="AUTO_ZOOM"> <Node name="node_IF_1" type="IF" x="-378.000000" y="-90.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_AND_1" type="AND" x="-780.000000" y="-97.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="false" description="Pull on INPUT2 even if INPUT1 is false"/> </Node> <Node name="node_Smaller_1" type="Smaller" x="-965.000000" y="-103.000000"/> <Node name="node_NOP_1" type="NOP" x="-1404.000000" y="-109.000000"/> <Node name="node_NOP_2" type="NOP" x="-1405.000000" y="-49.000000"/> <Node name="node_NOP_3" type="NOP" x="-1300.000000" y="-198.000000"/> <Node name="node_Constant_2" type="Constant" x="-1183.000000" y="-96.000000"> <Parameter name="VALUE" type="float" value="10" description="The value"/> </Node> <Node name="node_Smaller_2" type="Smaller" x="-966.000000" y="-42.000000"/> <Node name="node_AND_2" type="AND" x="-614.000000" y="-105.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="false" description="Pull on INPUT2 even if INPUT1 is false"/> </Node> <Node name="node_Greater_1" type="Greater" x="-797.000000" y="-192.000000"/> <Node name="node_Constant_3" type="Constant" x="-1058.000000" y="-162.000000"> <Parameter name="VALUE" type="int" value="15" description="The value"/> </Node> <Node name="node_Constant_5" type="Constant" x="-809.000000" y="86.000000"> <Parameter name="VALUE" type="int" value="-50" description="The value"/> </Node> <Node name="node_IF_2" type="IF" x="-563.000000" y="72.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_Constant_6" type="Constant" x="-709.000000" y="72.000000"> <Parameter name="VALUE" type="int" value="0" description="The value"/> </Node> <Node name="node_ABS_1" type="ABS" x="-1284.000000" y="-109.000000"/> <Node name="node_ABS_2" type="ABS" x="-1282.000000" y="-49.000000"/> <Node name="node_Constant_1" type="Constant" x="-535.000000" y="-91.000000"> <Parameter name="VALUE" type="int" value="50" description="The value"/> </Node> <Link from="node_Smaller_1" output="OUTPUT" to="node_AND_1" input="INPUT1"/> <Link from="node_Constant_2" output="VALUE" to="node_Smaller_1" input="INPUT2"/> <Link from="node_Smaller_2" output="OUTPUT" to="node_AND_1" input="INPUT2"/> <Link from="node_AND_2" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_Greater_1" output="OUTPUT" to="node_AND_2" input="INPUT1"/> <Link from="node_NOP_3" output="OUTPUT" to="node_Greater_1" input="INPUT1"/> <Link from="node_Constant_3" output="VALUE" to="node_Greater_1" input="INPUT2"/> <Link from="node_IF_2" output="OUTPUT" to="node_IF_1" input="ELSE"/> <Link from="node_Greater_1" output="OUTPUT" to="node_IF_2" input="COND"/> <Link from="node_Constant_6" output="VALUE" to="node_IF_2" input="THEN"/> <Link from="node_NOP_1" output="OUTPUT" to="node_ABS_1" input="INPUT"/> <Link from="node_ABS_1" output="OUTPUT" to="node_Smaller_1" input="INPUT1"/> <Link from="node_NOP_2" output="OUTPUT" to="node_ABS_2" input="INPUT"/> <Link from="node_Constant_2" output="VALUE" to="node_Smaller_2" input="INPUT2">-1149 -96 -1149 -36 -1049.5 -34.5 </Link> <Link from="node_ABS_2" output="OUTPUT" to="node_Smaller_2" input="INPUT1"/> <Link from="node_AND_1" output="OUTPUT" to="node_AND_2" input="INPUT2"/> <Link from="node_Constant_5" output="VALUE" to="node_IF_2" input="ELSE"/> <Link from="node_Constant_1" output="VALUE" to="node_IF_1" input="THEN"/> <NetInput name="DELTA_X" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="DELTA_Y" node="node_NOP_2" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="BOUNDARY" node="node_NOP_3" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="REL_ZOOM" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="-1080" y="162" visible="1" text="The idea is to get the color component centered enough before sending zoom increments. If we are too close to the image border, we send decrement the zoom value."/> </Network> <Network type="subnet" name="ABS"> <Node name="node_IF_1" type="IF" x="-241.000000" y="-18.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_Mul_1" type="Mul" x="-397.000000" y="-19.000000"/> <Node name="node_Constant_1" type="Constant" x="-603.000000" y="-11.000000"> <Parameter name="VALUE" type="float" value="-1" description="The value"/> </Node> <Node name="node_NOP_1" type="NOP" x="-911.000000" y="-109.000000"/> <Node name="node_Smaller_1" type="Smaller" x="-389.000000" y="-100.000000"/> <Node name="node_Constant_2" type="Constant" x="-604.000000" y="-91.000000"> <Parameter name="VALUE" type="float" value="0" description="The value"/> </Node> <Link from="node_Constant_1" output="VALUE" to="node_Mul_1" input="INPUT2"/> <Link from="node_Smaller_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_NOP_1" output="OUTPUT" to="node_Smaller_1" input="INPUT1"/> <Link from="node_Constant_2" output="VALUE" to="node_Smaller_1" input="INPUT2"/> <Link from="node_Mul_1" output="OUTPUT" to="node_IF_1" input="THEN"/> <Link from="node_NOP_1" output="OUTPUT" to="node_Mul_1" input="INPUT1"/> <Link from="node_NOP_1" output="OUTPUT" to="node_IF_1" input="ELSE">-892 -109 -826 51 -466 51 -296 -3 </Link> <NetInput name="INPUT" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="OUTPUT" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="-580" y="233" visible="1" text="Returns the absolute value (always positive)"/> </Network> <Network type="subnet" name="SENTENCE_READER"> <Node name="node_NewAccumulator_1" type="NewAccumulator" x="-243.000000" y="342.000000"/> <Node name="node_SymbolCounter_1" type="SymbolCounter" x="-289.000000" y="386.000000"> <Parameter name="CHANNEL" type="int" value="1" description=""/> <Parameter name="DEPTH" type="int" value="2" description=""/> </Node> <Node name="node_STRING_EXTRACTOR_1" type="STRING_EXTRACTOR" x="86.000000" y="321.000000"> <Parameter name="DOWHILE" type="bool" value="" description="No description available"/> </Node> <Node name="node_ExtractSentence_v2_1" type="ExtractSentence_v2" x="441.000000" y="329.000000"> <Parameter name="VERTICAL_TOLERANCE" type="float" value="0.5" description=""/> <Parameter name="HORIZONTAL_TOLERANCE" type="float" value="0.5" description=""/> </Node> <Node name="node_NOP_2" type="NOP" x="-524.000000" y="299.000000"/> <Link from="node_SymbolCounter_1" output="COUNT" to="node_STRING_EXTRACTOR_1" input="SYMBOL_COUNT"/> <Link from="node_NOP_2" output="OUTPUT" to="node_STRING_EXTRACTOR_1" input="DATA"/> <Link from="node_NOP_2" output="OUTPUT" to="node_SymbolCounter_1" input="DATA"/> <Link from="node_NewAccumulator_1" output="OUTPUT" to="node_STRING_EXTRACTOR_1" input="ACCUM"/> <Link from="node_STRING_EXTRACTOR_1" output="ACCUM_OUT" to="node_ExtractSentence_v2_1" input="SYMBOL_LIST"/> <NetInput name="NNET" node="node_STRING_EXTRACTOR_1" terminal="NNET" object_type="any" description="No description available"/> <NetInput name="DICT" node="node_ExtractSentence_v2_1" terminal="DICT" object_type="any" description="No description available"/> <NetOutput name="SENTENCE" node="node_ExtractSentence_v2_1" terminal="SENTENCE" object_type="string" description="A string corresponding to the sentence read"/> <NetOutput name="ORIGINAL_TEXT" node="node_ExtractSentence_v2_1" terminal="ORIGINAL_TEXT" object_type="string" description="Original Text one letter at a time."/> <NetInput name="BLACK_WHITE_COMPONENTS" node="node_NOP_2" terminal="INPUT" object_type="any" description="The input"/> <Note x="-440" y="254" visible="1" text="Black and white components are extracted from the image."/> <Note x="-1115" y="154" visible="1" text="This is an adaptative threshold for the binarization."/> <Note x="27" y="527" visible="1" text="All characters are then processed by the neural network."/> <Note x="483" y="512" visible="1" text="We use a dictionary to fit the neural network output for each characters used as probability of occurence of a letter in a word."/> </Network> <Network type="subnet" name="EXTRA_INFO"> <Node name="node_Div_1" type="Div" x="-212.000000" y="133.000000"/> <Node name="node_Concatenate_1" type="Concatenate" x="255.000000" y="143.000000"/> <Node name="node_Div_2" type="Div" x="-211.000000" y="172.000000"/> <Node name="node_Concatenate_2" type="Concatenate" x="49.000000" y="169.000000"/> <Node name="node_Div_3" type="Div" x="-212.000000" y="214.000000"/> <Node name="node_Float2Vect_1" type="Float2Vect" x="-126.000000" y="134.000000"> <Parameter name="LOOKAHEAD" type="int" value="" description=""/> <Parameter name="LOOKBACK" type="int" value="" description=""/> </Node> <Node name="node_Float2Vect_2" type="Float2Vect" x="-126.000000" y="173.000000"> <Parameter name="LOOKAHEAD" type="int" value="" description=""/> <Parameter name="LOOKBACK" type="int" value="" description=""/> </Node> <Node name="node_Float2Vect_3" type="Float2Vect" x="-127.000000" y="213.000000"> <Parameter name="LOOKAHEAD" type="int" value="" description=""/> <Parameter name="LOOKBACK" type="int" value="" description=""/> </Node> <Node name="node_NOP_1" type="NOP" x="-741.000000" y="154.000000"/> <Node name="node_RectAnalyser_1" type="RectAnalyser" x="-664.000000" y="155.000000"/> <Node name="node_ToFloat_1" type="ToFloat" x="-365.000000" y="104.000000"/> <Node name="node_ToFloat_2" type="ToFloat" x="-365.000000" y="139.000000"/> <Node name="node_ToFloat_3" type="ToFloat" x="-366.000000" y="170.000000"/> <Node name="node_ToFloat_4" type="ToFloat" x="-364.000000" y="201.000000"/> <Link from="node_Float2Vect_1" output="OUTPUT" to="node_Concatenate_1" input="INPUT1"/> <Link from="node_Concatenate_2" output="OUTPUT" to="node_Concatenate_1" input="INPUT2">95 169 97 151 155 150.5 </Link> <Link from="node_Float2Vect_2" output="OUTPUT" to="node_Concatenate_2" input="INPUT1"/> <Link from="node_Float2Vect_3" output="OUTPUT" to="node_Concatenate_2" input="INPUT2"/> <Link from="node_Div_1" output="OUTPUT" to="node_Float2Vect_1" input="INPUT"/> <Link from="node_Div_2" output="OUTPUT" to="node_Float2Vect_2" input="INPUT"/> <Link from="node_Div_3" output="OUTPUT" to="node_Float2Vect_3" input="INPUT"/> <Link from="node_NOP_1" output="OUTPUT" to="node_RectAnalyser_1" input="CRECT"/> <Link from="node_ToFloat_1" output="OUTPUT" to="node_Div_1" input="NUM"/> <Link from="node_RectAnalyser_1" output="HEIGHT" to="node_ToFloat_1" input="INPUT"/> <Link from="node_ToFloat_1" output="OUTPUT" to="node_Div_3" input="DEN"/> <Link from="node_RectAnalyser_1" output="WIDTH" to="node_ToFloat_2" input="INPUT"/> <Link from="node_ToFloat_2" output="OUTPUT" to="node_Div_1" input="DEN"/> <Link from="node_ToFloat_2" output="OUTPUT" to="node_Div_2" input="DEN"/> <Link from="node_RectAnalyser_1" output="X_RELATIVE_CENTER_OF_GRAVITY" to="node_ToFloat_3" input="INPUT"/> <Link from="node_ToFloat_3" output="OUTPUT" to="node_Div_2" input="NUM"/> <Link from="node_RectAnalyser_1" output="Y_RELATIVE_CENTER_OF_GRAVITY" to="node_ToFloat_4" input="INPUT"/> <Link from="node_ToFloat_4" output="OUTPUT" to="node_Div_3" input="NUM"/> <NetInput name="INPUT" node="node_NOP_1" terminal="INPUT" object_type="any" description="No description available"/> <NetOutput name="OUTPUT" node="node_Concatenate_1" terminal="OUTPUT" object_type="any" description="No description available"/> <Note x="-285" y="457" visible="1" text="Extract WIDTH / HEIGHT X_CENTER_OF_GRAVITY / WIDTH and Y_CENTER_OF_GRAVITY / HEIGHT to be used as additional inputs for the neural network."/> </Network> <Network type="subnet" name="SYMBOL_EXTRACTOR"> <Node name="node_NNetExec_1" type="NNetExec" x="-447.000000" y="141.000000"> <Parameter name="OUTPUTLENGTH" type="int" value="36" description=""/> </Node> <Node name="node_SymbolExtractor_1" type="SymbolExtractor" x="-990.000000" y="115.000000"> <Parameter name="CHANNEL" type="int" value="1" description=""/> </Node> <Node name="node_Scale_1" type="Scale" x="-787.000000" y="115.000000"> <Parameter name="WIDTH" type="int" value="13" description=""/> <Parameter name="HEIGHT" type="int" value="13" description=""/> <Parameter name="DEBUG" type="int" value="0" description=""/> </Node> <Node name="node_DCVector_1" type="DCVector" x="-49.000000" y="220.000000"> <Parameter name="LENGTH" type="int" value="1" description=""/> <Parameter name="VALUE" type="float" value="-2" description=""/> </Node> <Node name="node_VectorSetIndex_1" type="VectorSetIndex" x="162.000000" y="235.000000"/> <Node name="node_Constant_1" type="Constant" x="-112.000000" y="251.000000"> <Parameter name="VALUE" type="int" value="0" description=""/> </Node> <Node name="node_RectBoundaries_1" type="RectBoundaries" x="-450.000000" y="22.000000"/> <Node name="node_Concatenate_1" type="Concatenate" x="406.000000" y="127.000000"/> <Node name="node_EXTRA_INFO_1" type="EXTRA_INFO" x="-804.000000" y="140.000000"/> <Node name="node_Concatenate_2" type="Concatenate" x="-624.000000" y="132.000000"/> <Node name="node_NewSymbolIdentify_1" type="NewSymbolIdentify" x="-308.000000" y="216.000000"> <Parameter name="THRESHOLD" type="float" value="0.80" description=""/> </Node> <Node name="node_Concat_1" type="Concat" x="-208.000000" y="134.000000"/> <Node name="node_ToFloat_1" type="ToFloat" x="-189.000000" y="215.000000"/> <Node name="node_RectAnalyser_1" type="RectAnalyser" x="-659.000000" y="-180.000000"/> <Node name="node_IF_1" type="IF" x="726.000000" y="-185.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_AND_1" type="AND" x="-40.000000" y="-201.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="false" description="Pull on INPUT2 even if INPUT1 is false"/> </Node> <Node name="node_Greater_1" type="Greater" x="-184.000000" y="-241.000000"/> <Node name="node_Greater_2" type="Greater" x="-184.000000" y="-185.000000"/> <Node name="node_Constant_2" type="Constant" x="-482.000000" y="-274.000000"> <Parameter name="VALUE" type="int" value="30" description="The value"/> </Node> <Node name="node_Constant_3" type="Constant" x="-481.000000" y="-247.000000"> <Parameter name="VALUE" type="int" value="30" description="The value"/> </Node> <Node name="node_NilObject_1" type="NilObject" x="443.000000" y="-169.000000"/> <Link from="node_Concatenate_2" output="OUTPUT" to="node_NNetExec_1" input="INPUT"/> <Link from="node_SymbolExtractor_1" output="SYMBOL" to="node_Scale_1" input="CRECT"/> <Link from="node_DCVector_1" output="OUTPUT" to="node_VectorSetIndex_1" input="VECTOR"/> <Link from="node_Constant_1" output="VALUE" to="node_VectorSetIndex_1" input="INDEX"/> <Link from="node_SymbolExtractor_1" output="SYMBOL" to="node_RectBoundaries_1" input="CRECT">-932 115 -644 22 -504.5 22 </Link> <Link from="node_VectorSetIndex_1" output="OUTPUT" to="node_Concatenate_1" input="INPUT1">215.5 235 269 236 268 121 306 119.5 </Link> <Link from="node_SymbolExtractor_1" output="SYMBOL" to="node_EXTRA_INFO_1" input="INPUT"/> <Link from="node_Scale_1" output="OUTPUT" to="node_Concatenate_2" input="INPUT1"/> <Link from="node_EXTRA_INFO_1" output="OUTPUT" to="node_Concatenate_2" input="INPUT2"/> <Link from="node_RectBoundaries_1" output="OUTPUT" to="node_Concat_1" input="INPUT1"/> <Link from="node_NNetExec_1" output="OUTPUT" to="node_Concat_1" input="INPUT2"/> <Link from="node_Concat_1" output="OUTPUT" to="node_Concatenate_1" input="INPUT2"/> <Link from="node_NNetExec_1" output="OUTPUT" to="node_NewSymbolIdentify_1" input="INPUT"/> <Link from="node_ToFloat_1" output="OUTPUT" to="node_VectorSetIndex_1" input="VALUE">-162 215 -153 235 50.5 235 </Link> <Link from="node_NewSymbolIdentify_1" output="SYMBOL_ID" to="node_ToFloat_1" input="INPUT"/> <Link from="node_SymbolExtractor_1" output="SYMBOL" to="node_RectAnalyser_1" input="CRECT"/> <Link from="node_AND_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_Greater_1" output="OUTPUT" to="node_AND_1" input="INPUT1"/> <Link from="node_RectAnalyser_1" output="WIDTH" to="node_Greater_2" input="INPUT2"/> <Link from="node_RectAnalyser_1" output="HEIGHT" to="node_Greater_1" input="INPUT2"/> <Link from="node_Greater_2" output="OUTPUT" to="node_AND_1" input="INPUT2"/> <Link from="node_Constant_2" output="VALUE" to="node_Greater_1" input="INPUT1"/> <Link from="node_Constant_3" output="VALUE" to="node_Greater_2" input="INPUT1"/> <Link from="node_Concatenate_1" output="OUTPUT" to="node_IF_1" input="THEN">452 124 548 125 549 -185 671 -185 </Link> <Link from="node_NilObject_1" output="VALUE" to="node_IF_1" input="ELSE"/> <NetInput name="DATA" node="node_SymbolExtractor_1" terminal="DATA" object_type="any" description="No description available"/> <NetInput name="INDEX" node="node_SymbolExtractor_1" terminal="INDEX" object_type="any" description="No description available"/> <NetInput name="NNET" node="node_NNetExec_1" terminal="NNET" object_type="any" description="No description available"/> <NetOutput name="SYMBOL_VECTOR" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="-845" y="305" visible="1" text="Characters are scaled (13x13) and we add extra ratios to the input vector to produce a 172 value input vector."/> <Note x="-419" y="380" visible="1" text="Neural network output is calculated and the ID of the output unit containing the highest score (must be higher than 0.8) is returned"/> <Note x="-125" y="63" visible="1" text="We add The position (x1,y1,x2,y2) position of the character to the output vector. That will be useful to group characters into words later."/> </Network> <Network type="iterator" name="STRING_EXTRACTOR"> <Node name="node_Accumulate_1" type="Accumulate" x="218.000000" y="210.000000"/> <Node name="node_IF_1" type="IF" x="36.000000" y="31.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description=""/> </Node> <Node name="node_Constant_1" type="Constant" x="-96.000000" y="30.000000"> <Parameter name="VALUE" type="bool" value="true" description=""/> </Node> <Node name="node_Constant_2" type="Constant" x="-167.000000" y="46.000000"> <Parameter name="VALUE" type="bool" value="false" description=""/> </Node> <Node name="node_Smaller_1" type="Smaller" x="-235.000000" y="16.000000"/> <Node name="node_IterCount_1" type="IterCount" x="-500.000000" y="9.000000"/> <Node name="node_SYMBOL_EXTRACTOR_1" type="SYMBOL_EXTRACTOR" x="-107.000000" y="121.000000"/> <Node name="node_NOP_1" type="NOP" x="-99.000000" y="203.000000"/> <Node name="node_IF_2" type="IF" x="384.000000" y="135.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_isNil_1" type="isNil" x="125.000000" y="121.000000"/> <Link from="node_Smaller_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_Constant_1" output="VALUE" to="node_IF_1" input="THEN"/> <Link from="node_Constant_2" output="VALUE" to="node_IF_1" input="ELSE"/> <Link from="node_IterCount_1" output="OUTPUT" to="node_Smaller_1" input="INPUT1">-465.5 9 -330 9 -318.5 8.5 </Link> <Link from="node_IterCount_1" output="OUTPUT" to="node_SYMBOL_EXTRACTOR_1" input="INDEX">-465.5 9 -379 119 -227.5 121 </Link> <Link from="node_SYMBOL_EXTRACTOR_1" output="SYMBOL_VECTOR" to="node_isNil_1" input="INPUT"/> <Link from="node_isNil_1" output="OUTPUT" to="node_IF_2" input="COND"/> <Link from="node_NOP_1" output="OUTPUT" to="node_IF_2" input="THEN"/> <Link from="node_Accumulate_1" output="OUTPUT" to="node_IF_2" input="ELSE"/> <Link from="node_NOP_1" output="OUTPUT" to="node_Accumulate_1" input="ACCUM"/> <Link from="node_SYMBOL_EXTRACTOR_1" output="SYMBOL_VECTOR" to="node_Accumulate_1" input="INPUT"/> <NetInput name="DATA" node="node_SYMBOL_EXTRACTOR_1" terminal="DATA" object_type="any" description="No description available"/> <NetInput name="NNET" node="node_SYMBOL_EXTRACTOR_1" terminal="NNET" object_type="any" description="No description available"/> <NetInput name="SYMBOL_COUNT" node="node_Smaller_1" terminal="INPUT2" object_type="any" description="No description available"/> <NetCondition name="CONDITION" node="node_IF_1" terminal="OUTPUT"/> <NetInput name="ACCUM" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="ACCUM_OUT" node="node_IF_2" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="-125" y="380" visible="1" text="This is a loop to extract all characters information from the image components and store the result into an accumulator."/> </Network> <Network type="subnet" name="FIND_THRESHOLD"> <Node name="node_StatIntensityAnalyser_1" type="StatIntensityAnalyser" x="-257.000000" y="-292.000000"> <Parameter name="FRACTION_ANALYSED" type="float" value="0.1" description=""/> </Node> <Node name="node_Add_1" type="Add" x="71.000000" y="-290.000000"/> <Node name="node_Div_1" type="Div" x="247.000000" y="-283.000000"/> <Node name="node_Constant_1" type="Constant" x="57.000000" y="-245.000000"> <Parameter name="VALUE" type="float" value="2.5" description=""/> </Node> <Link from="node_StatIntensityAnalyser_1" output="MAX_INTENSITY" to="node_Add_1" input="INPUT1"/> <Link from="node_StatIntensityAnalyser_1" output="MIN_INTENSITY" to="node_Add_1" input="INPUT2"/> <Link from="node_Add_1" output="OUTPUT" to="node_Div_1" input="NUM"/> <Link from="node_Constant_1" output="VALUE" to="node_Div_1" input="DEN"/> <NetInput name="IMAGE_IN" node="node_StatIntensityAnalyser_1" terminal="IMAGE_IN" object_type="any" description="No description available"/> <NetOutput name="THRESHOLD" node="node_Div_1" terminal="OUTPUT" object_type="any" description="No description available"/> <Note x="10" y="10" visible="1" text="Calculate the maximum intensity and minimum image intensity with random pixels (1%). Threshold is calculated with : (MAX+ MIN) / 2.5"/> </Network> <Network type="subnet" name="MULTI_SIGN_TRACKING"> <Node name="node_MultiSignTracking_1" type="MultiSignTracking" x="349.000000" y="-56.000000"> <Parameter name="MIN_WIDTH" type="int" value="25" description="minimum width to obtain before we are ready for recognition."/> <Parameter name="MIN_HEIGHT" type="int" value="35" description="minimum height to obtain before we are ready for recognition."/> <Parameter name="FOREGROUND_COLOR_ID" type="int" value="1" description="The color number being tracked."/> <Parameter name="BACKGROUND_COLOR_ID" type="int" value="0" description="The color number being tracked."/> </Node> <Node name="node_NOP_1" type="NOP" x="945.000000" y="-105.000000"/> <Node name="node_COLOR_TRACKER_1" type="COLOR_TRACKER" x="353.000000" y="85.000000"/> <Node name="node_Subsumption_1" type="Subsumption" x="1002.000000" y="12.000000"/> <Node name="node_Subsumption_2" type="Subsumption" x="1004.000000" y="58.000000"/> <Node name="node_Subsumption_3" type="Subsumption" x="1006.000000" y="111.000000"/> <Node name="node_NOP_2" type="NOP" x="-61.000000" y="92.000000"/> <Node name="node_Constant_1" type="Constant" x="119.000000" y="42.000000"> <Parameter name="VALUE" type="bool" value="true" description="The value"/> </Node> <Node name="node_NOP_3" type="NOP" x="27.000000" y="-63.000000"/> <Node name="node_NOP_4" type="NOP" x="27.000000" y="-9.000000"/> <Node name="node_IF_1" type="IF" x="724.000000" y="87.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_isNil_1" type="isNil" x="587.000000" y="72.000000"/> <Node name="node_NilObject_1" type="NilObject" x="570.000000" y="111.000000"/> <Node name="node_IF_2" type="IF" x="727.000000" y="147.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_IF_3" type="IF" x="723.000000" y="18.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_NilObject_2" type="NilObject" x="728.000000" y="-46.000000"/> <Node name="node_RectBoundaries_1" type="RectBoundaries" x="340.000000" y="170.000000"/> <Node name="node_SymbolExtractor_1" type="SymbolExtractor" x="84.000000" y="169.000000"> <Parameter name="CHANNEL" type="int" value="0" description="Channel from which to extract the symbol"/> </Node> <Node name="node_Constant_2" type="Constant" x="-122.000000" y="176.000000"> <Parameter name="VALUE" type="int" value="0" description="The value"/> </Node> <Node name="node_SymbolCounter_1" type="SymbolCounter" x="216.000000" y="245.000000"> <Parameter name="CHANNEL" type="int" value="0" description="Channel from which to extract the symbol"/> <Parameter name="DEPTH" type="int" value="2" description="Depth of the image (in bytes per pixel)"/> </Node> <Node name="node_IF_4" type="IF" x="630.000000" y="266.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_Greater_1" type="Greater" x="494.000000" y="251.000000"/> <Node name="node_Constant_3" type="Constant" x="339.000000" y="277.000000"> <Parameter name="VALUE" type="int" value="0" description="The value"/> </Node> <Node name="node_Constant_4" type="Constant" x="467.000000" y="306.000000"> <Parameter name="VALUE" type="bool" value="false" description="The value"/> </Node> <Link from="node_MultiSignTracking_1" output="COMPONENTS" to="node_NOP_1" input="INPUT"/> <Link from="node_Constant_1" output="VALUE" to="node_COLOR_TRACKER_1" input="ACTIVATED"/> <Link from="node_NOP_3" output="OUTPUT" to="node_MultiSignTracking_1" input="ACTIVATED"/> <Link from="node_NOP_2" output="OUTPUT" to="node_COLOR_TRACKER_1" input="COMPONENTS"/> <Link from="node_NOP_4" output="OUTPUT" to="node_MultiSignTracking_1" input="COMPONENTS"/> <Link from="node_isNil_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_COLOR_TRACKER_1" output="DELTA_X" to="node_isNil_1" input="INPUT"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_1" input="THEN"/> <Link from="node_MultiSignTracking_1" output="DELTA_X" to="node_IF_1" input="ELSE"/> <Link from="node_IF_1" output="OUTPUT" to="node_Subsumption_1" input="LOW_PRIORITY"/> <Link from="node_isNil_1" output="OUTPUT" to="node_IF_2" input="COND"/> <Link from="node_IF_2" output="OUTPUT" to="node_Subsumption_2" input="LOW_PRIORITY"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_2" input="THEN"/> <Link from="node_MultiSignTracking_1" output="DELTA_Y" to="node_IF_2" input="ELSE"/> <Link from="node_MultiSignTracking_1" output="BOUNDARY" to="node_IF_3" input="ELSE"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_3" input="THEN"/> <Link from="node_isNil_1" output="OUTPUT" to="node_IF_3" input="COND"/> <Link from="node_IF_3" output="OUTPUT" to="node_Subsumption_3" input="LOW_PRIORITY"/> <Link from="node_NilObject_2" output="VALUE" to="node_Subsumption_1" input="HIGH_PRIORITY"/> <Link from="node_NilObject_2" output="VALUE" to="node_Subsumption_2" input="HIGH_PRIORITY"/> <Link from="node_NilObject_2" output="VALUE" to="node_Subsumption_3" input="HIGH_PRIORITY"/> <Link from="node_Constant_2" output="VALUE" to="node_SymbolExtractor_1" input="INDEX"/> <Link from="node_SymbolExtractor_1" output="SYMBOL" to="node_RectBoundaries_1" input="CRECT"/> <Link from="node_SymbolCounter_1" output="COUNT" to="node_Greater_1" input="INPUT1"/> <Link from="node_SymbolExtractor_1" output="SYMBOL" to="node_SymbolCounter_1" input="DATA"/> <Link from="node_Greater_1" output="OUTPUT" to="node_IF_4" input="COND"/> <Link from="node_Constant_3" output="VALUE" to="node_Greater_1" input="INPUT2"/> <Link from="node_RectBoundaries_1" output="OUTPUT" to="node_IF_4" input="THEN">397 170 398 265 575 266 </Link> <Link from="node_Constant_4" output="VALUE" to="node_IF_4" input="ELSE"/> <NetOutput name="COMPONENTS" node="node_NOP_1" terminal="OUTPUT" object_type="any" description="The output = The input"/> <NetInput name="COMPONENTS" node="node_NOP_2" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="DELTA_X" node="node_Subsumption_1" terminal="OUTPUT" object_type="any" description="No description available"/> <NetOutput name="DELTA_Y" node="node_Subsumption_2" terminal="OUTPUT" object_type="any" description="No description available"/> <NetOutput name="BOUNDARY" node="node_Subsumption_3" terminal="OUTPUT" object_type="any" description="No description available"/> <NetInput name="SIGN_TRACKING_ACTIVATED" node="node_NOP_3" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="BLACK_WHITE_COMPONENTS" node="node_NOP_4" terminal="INPUT" object_type="any" description="The input"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="198" y="472" visible="1" text="If activated, the MultiSignTracking behavior will output probable characters components, delta_x, delta_y and boundray of the group of components that could be characters."/> <Note x="843" y="370" visible="1" text="If we can't find blobs of foreground color surrounded by the background color, we will use only foreground color to "scan"."/> </Network> <Network type="subnet" name="ZOOM_FACTOR"> <Node name="node_Div_1" type="Div" x="-132.000000" y="147.000000"/> <Node name="node_Constant_1" type="Constant" x="-244.000000" y="156.000000"> <Parameter name="VALUE" type="float" value="683" description="The value"/> </Node> <Node name="node_Add_1" type="Add" x="-24.000000" y="139.000000"/> <Node name="node_Constant_2" type="Constant" x="-180.000000" y="87.000000"> <Parameter name="VALUE" type="float" value="1.0" description="The value"/> </Node> <Node name="node_NOP_1" type="NOP" x="-486.000000" y="140.000000"/> <Node name="node_NOP_2" type="NOP" x="191.000000" y="139.000000"/> <Link from="node_Constant_1" output="VALUE" to="node_Div_1" input="DEN"/> <Link from="node_Constant_2" output="VALUE" to="node_Add_1" input="INPUT1"/> <Link from="node_Div_1" output="OUTPUT" to="node_Add_1" input="INPUT2"/> <Link from="node_NOP_1" output="OUTPUT" to="node_Div_1" input="NUM"/> <Link from="node_Add_1" output="OUTPUT" to="node_NOP_2" input="INPUT"/> <NetInput name="ABS_ZOOM_VALUE" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetOutput name="ZOOM_FACTOR" node="node_NOP_2" terminal="OUTPUT" object_type="any" description="The output = The input"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="-186" y="428" visible="1" text="Zoom factor 1X - 25X is calculated according to the Sony SNC-RZ30 camera."/> </Network> <Network type="subnet" name="PROCESS_SEGMENTS"> <Node name="node_SENTENCE_READER_1" type="SENTENCE_READER" x="-334.000000" y="-384.000000"/> <NetInput name="NNET" node="node_SENTENCE_READER_1" terminal="NNET" object_type="" description="No description available"/> <NetInput name="DICT" node="node_SENTENCE_READER_1" terminal="DICT" object_type="" description="No description available"/> <NetInput name="BLACK_WHITE_COMPONENTS" node="node_SENTENCE_READER_1" terminal="BLACK_WHITE_COMPONENTS" object_type="" description="The input"/> <NetOutput name="SENTENCE" node="node_SENTENCE_READER_1" terminal="SENTENCE" object_type="" description="A string corresponding to the sentence read"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> <Note x="-373" y="-194" visible="1" text="Will output Original text (without the dicitonary) and the sentence (if any) recognized in the image"/> </Network> <Network type="subnet" name="COLOR_TRACKER"> <Node name="node_ColorTracker_1" type="ColorTracker" x="-746.000000" y="-212.000000"/> <Node name="node_Constant_1" type="Constant" x="-1053.000000" y="-220.000000"> <Parameter name="VALUE" type="int" value="0" description="The value"/> </Node> <Node name="node_IF_1" type="IF" x="-182.000000" y="-294.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_IF_2" type="IF" x="-183.000000" y="-235.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_IF_3" type="IF" x="-183.000000" y="-175.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_NOP_1" type="NOP" x="-512.000000" y="-343.000000"/> <Node name="node_NilObject_1" type="NilObject" x="-485.000000" y="-159.000000"/> <Node name="node_NOP_2" type="NOP" x="-1018.000000" y="-161.000000"/> <Link from="node_Constant_1" output="VALUE" to="node_ColorTracker_1" input="COLOR_ID"/> <Link from="node_ColorTracker_1" output="DELTA_X" to="node_IF_1" input="THEN"/> <Link from="node_ColorTracker_1" output="DELTA_Y" to="node_IF_2" input="THEN"/> <Link from="node_NOP_1" output="OUTPUT" to="node_IF_1" input="COND"/> <Link from="node_NOP_1" output="OUTPUT" to="node_IF_2" input="COND"/> <Link from="node_NOP_1" output="OUTPUT" to="node_IF_3" input="COND"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_1" input="ELSE"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_2" input="ELSE"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_3" input="ELSE"/> <Link from="node_NOP_2" output="OUTPUT" to="node_ColorTracker_1" input="COMPONENTS"/> <Link from="node_ColorTracker_1" output="BOUNDARY" to="node_IF_3" input="THEN"/> <NetOutput name="DELTA_X" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <NetOutput name="DELTA_Y" node="node_IF_2" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <NetOutput name="BOUNDARY" node="node_IF_3" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <NetInput name="ACTIVATED" node="node_NOP_1" terminal="INPUT" object_type="any" description="The input"/> <NetInput name="COMPONENTS" node="node_NOP_2" terminal="INPUT" object_type="any" description="The input"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> </Network> <Network type="subnet" name="IF_ACTIVATED_DO"> <Node name="node_IF_1" type="IF" x="-316.000000" y="-92.000000"> <Parameter name="PULL_ANYWAY" type="bool" value="" description="If true, the IF statement pulls also on the branch not taken"/> </Node> <Node name="node_NilObject_1" type="NilObject" x="-461.000000" y="-35.000000"/> <Link from="node_NilObject_1" output="VALUE" to="node_IF_1" input="ELSE"/> <NetInput name="SIGN_TRACKING_ACTIVATED" node="node_IF_1" terminal="COND" object_type="bool" description="The condition for the if statement"/> <NetInput name="DO" node="node_IF_1" terminal="THEN" object_type="any" description="What to do if the condition is true"/> <NetOutput name="OUTPUT" node="node_IF_1" terminal="OUTPUT" object_type="any" description="The object from THEN or ELSE depending on COND"/> <Note x="0" y="0" visible="0" text="Created with FlowDesigner 0.8.1"/> </Network> </Document> Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/n-files/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile.am 26 Aug 2004 12:12:20 -0000 1.1 --- Makefile.am 6 Jun 2005 20:55:17 -0000 1.2 *************** *** 3,7 **** toolboxdir = $(prefix) ! toolbox_DATA = READ.n EXTRA_DIST = $(toolbox_DATA) --- 3,7 ---- toolboxdir = $(prefix) ! toolbox_DATA = READ.n READv2.n EXTRA_DIST = $(toolbox_DATA) Index: READ.n =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/n-files/READ.n,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** READ.n 20 Sep 2004 19:15:48 -0000 1.6 --- READ.n 6 Jun 2005 20:55:17 -0000 1.7 *************** *** 4,8 **** <Network type="subnet" name="MAIN"> <Node name="node_LOOP0_1" type="MAIN_PROCESS" x="-3397.000000" y="-618.000000"/> - <NetInput name="BLACK_WHITE_LOOKUP" node="node_LOOP0_1" terminal="BLACK_WHITE_LOOKUP" object_type="" description="No description available"/> <NetInput name="NNET" node="node_LOOP0_1" terminal="NNET" object_type="" description="No description available"/> <NetInput name="DICT" node="node_LOOP0_1" terminal="DICT" object_type="" description="No description available"/> --- 4,7 ---- *************** *** 17,20 **** --- 16,20 ---- <NetOutput name="ORIGINAL_TEXT" node="node_LOOP0_1" terminal="ORIGINAL_TEXT" object_type="" description="The object from THEN or ELSE depending on COND"/> <NetOutput name="READING_FLAG" node="node_LOOP0_1" terminal="READING_FLAG" object_type="" description="The object from THEN or ELSE depending on COND"/> + <NetInput name="BLACK_WHITE_LOOKUP" node="node_LOOP0_1" terminal="BLACK_WHITE_LOOKUP" object_type="any" description="No description available"/> <Note x="-3418" y="-384" visible="1" text="The MAIN network will load configuration from the files containing : - black and white color lookup - the neural network to use for recog - The dictionary to use * You can change this configuration by double clicking on the LoadFile blocks"/> </Network> *************** *** 53,58 **** <Node name="node_IF_ACTIVATED_DO_5" type="IF_ACTIVATED_DO" x="692.000000" y="404.000000"/> <Node name="node_IF_ACTIVATED_DO_6" type="IF_ACTIVATED_DO" x="688.000000" y="230.000000"/> ! <Node name="node_NOP_3" type="NOP" x="-547.000000" y="398.000000"/> ! <Link from="node_MULTI_SIGN_TRACKING_1" output="COMPONENTS" to="node_PROCESS_SEGMENTS_1" input="SYMBOLS_COMPONENTS">-104.5 76.5 -100 352 -48 351 </Link> <Link from="node_SUBNET0_1" output="COMPONENTS" to="node_MULTI_SIGN_TRACKING_1" input="COMPONENTS"/> <Link from="node_MULTI_SIGN_TRACKING_1" output="DELTA_X" to="node_PAN_TILT_CTRL_1" input="DELTA_X"/> --- 53,66 ---- <Node name="node_IF_ACTIVATED_DO_5" type="IF_ACTIVATED_DO" x="692.000000" y="404.000000"/> <Node name="node_IF_ACTIVATED_DO_6" type="IF_ACTIVATED_DO" x="688.000000" y="230.000000"/> ! <Node name="node_NOP_3" type="NOP" x="-734.000000" y="383.000000"/> ! <Node name="node_Components_1" type="Components" x="-638.000000" y="152.000000"> ! <Parameter name="XGAP" type="int" value="1" description=""/> ! <Parameter name="YGAP" type="int" value="1" description=""/> ! <Parameter name="NUM_COLOR" type="int" value="2" description=""/> ! <Parameter name="MIN_AREA" type="int" value="16" description=""/> ! </Node> ! <Node name="node_Binarize_1" type="Binarize" x="-777.000000" y="282.000000"/> ! <Node name="node_FIND_THRESHOLD_1" type="FIND_THRESHOLD" x="-1012.000000" y="274.000000"/> ! <Link from="node_MULTI_SIGN_TRACKING_1" output="COMPONENTS" to="node_PROCESS_SEGMENTS_1" input="SYMBOLS_COMPONENTS">-104.5 76.5 -99 329 -73 328.5 </Link> <Link from="node_SUBNET0_1" output="COMPONENTS" to="node_MULTI_SIGN_TRACKING_1" input="COMPONENTS"/> <Link from="node_MULTI_SIGN_TRACKING_1" output="DELTA_X" to="node_PAN_TILT_CTRL_1" input="DELTA_X"/> *************** *** 62,66 **** <Link from="node_NOP_1" output="OUTPUT" to="node_PAN_TILT_CTRL_1" input="CURRENT_ZOOM">-432 192 -411 151 40.5 152 </Link> <Link from="node_NOP_2" output="OUTPUT" to="node_SUBNET0_1" input="IMAGE">-1135 291 -1135 85 -1000 83.5 </Link> - <Link from="node_NOP_2" output="OUTPUT" to="node_PROCESS_SEGMENTS_1" input="IMAGE"/> <Link from="node_ZOOM_FACTOR_1" output="ZOOM_FACTOR" to="node_PAN_TILT_CTRL_1" input="ZOOM_FACTOR">-265 193 -111 193 40.5 122 </Link> <Link from="node_AND_1" output="OUTPUT" to="node_NOT_1" input="INPUT"/> --- 70,73 ---- *************** *** 82,88 **** <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_3" input="SIGN_TRACKING_ACTIVATED"/> <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_6" input="SIGN_TRACKING_ACTIVATED"/> ! <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_4" input="SIGN_TRACKING_ACTIVATED">-528 398 389 395 390 274 451.5 272.5 </Link> <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_5" input="SIGN_TRACKING_ACTIVATED"/> ! <NetInput name="BLACK_WHITE_LOOKUP" node="node_PROCESS_SEGMENTS_1" terminal="LOOKUP" object_type="" description="No description available"/> <NetInput name="NNET" node="node_PROCESS_SEGMENTS_1" terminal="NNET" object_type="" description="No description available"/> <NetInput name="DICT" node="node_PROCESS_SEGMENTS_1" terminal="DICT" object_type="" description="No description available"/> --- 89,100 ---- <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_3" input="SIGN_TRACKING_ACTIVATED"/> <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_6" input="SIGN_TRACKING_ACTIVATED"/> ! <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_4" input="SIGN_TRACKING_ACTIVATED">-715 383 389 395 390 274 451.5 272.5 </Link> <Link from="node_NOP_3" output="OUTPUT" to="node_IF_ACTIVATED_DO_5" input="SIGN_TRACKING_ACTIVATED"/> ! <Link from="node_FIND_THRESHOLD_1" output="THRESHOLD" to="node_Binarize_1" input="THRESHOLD"/> ! <Link from="node_NOP_2" output="OUTPUT" to="node_FIND_THRESHOLD_1" input="IMAGE_IN"/> ! <Link from="node_NOP_2" output="OUTPUT" to="node_Binarize_1" input="IMAGE_IN"/> ! <Link from="node_Binarize_1" output="IMAGE_OUT" to="node_Components_1" input="IMAGE"/> ! <Link from="node_Components_1" output="BLOBS" to="node_MULTI_SIGN_TRACKING_1" input="BLACK_WHITE_COMPONENTS"/> ! <Link from="node_Components_1" output="BLOBS" to="node_PROCESS_SEGMENTS_1" input="BLACK_WHITE_COMPONENTS"/> <NetInput name="NNET" node="node_PROCESS_SEGMENTS_1" terminal="NNET" object_type="" description="No description available"/> <NetInput name="DICT" node="node_PROCESS_SEGMENTS_1" terminal="DICT" object_type="" description="No description available"/> *************** *** 97,100 **** --- 109,113 ---- <NetOutput name="READING_FLAG" node="node_IF_ACTIVATED_DO_6" terminal="OUTPUT" object_type="" description="The object from THEN or ELSE depend... [truncated message content] |