Poor image recognition performance - suggestions appreciated!
Doloop
New Altair Community Member
I have created a process that uses a neural network (NN) to evaluate images. The images are from network cameras and I want the NN to classify the images into two groups: images in which people and/or vehicles appear or images in which people and/or vehicles do not appear. (The process then emails me whenever it finds an image in which people or vehicles appear.) I'm using the ImageMiner-1.4.1 extension. I am getting poor performance from my model and I assume it is because I am not really extracting the best features from the images so that the NN can make accurate classifications. I would appreciate it if anyone who is familiar with the ImageMiner-1.4.1 extension could give me some suggestions as to the types of features I should be using for this kind of task (and any other suggestions that might be helpful).
(In case anyone is wondering what I mean by poor performance. I've used cross-validation and my best performance is a precision of 86% [not too bad] and accuracy of 27% [ugh!!]. The model performs much worse than this when applied against other unlabeled images. I also tried using the "similarity" operator (provided by the ImageMiner-1.4.1 extension and it gave me FABULOUS performance on cross-validation (100% precision and 100% accuracy) - but then when I actually used it against more unlabeled images, it failed miserably. It only identified about 30% correctly.)
Thanks in advance.
doloop
(In case anyone is wondering what I mean by poor performance. I've used cross-validation and my best performance is a precision of 86% [not too bad] and accuracy of 27% [ugh!!]. The model performs much worse than this when applied against other unlabeled images. I also tried using the "similarity" operator (provided by the ImageMiner-1.4.1 extension and it gave me FABULOUS performance on cross-validation (100% precision and 100% accuracy) - but then when I actually used it against more unlabeled images, it failed miserably. It only identified about 30% correctly.)
Thanks in advance.
doloop
Tagged:
0
Answers
-
Hello,
try it first with global features:
You can experiment with edge detection, gaussian blur and other filters...
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.3.000">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="5.3.000" expanded="true" name="Process">
<process expanded="true" height="325" width="614">
<operator activated="true" class="imageprocessing:multiple_color_image_opener" compatibility="1.3.003" expanded="true" height="60" name="MCIO" width="90" x="380" y="30">
<list key="images">
<parameter key="true" value="D:\store\categorization\nature"/>
<parameter key="false" value="D:\store\categorization\urban"/>
</list>
<parameter key="assign_label" value="true"/>
<process expanded="true" height="702" width="1221">
<operator activated="true" class="imageprocessing:global_feature_extraction" compatibility="1.3.003" expanded="true" height="60" name="Global Feature Extractor from a Single Image" width="90" x="380" y="30">
<parameter key="include_position_filename" value="false"/>
<process expanded="true" height="702" width="1221">
<operator activated="true" class="imageprocessing:statistics" compatibility="1.3.003" expanded="true" height="60" name="Global statistics" width="90" x="447" y="30"/>
<operator activated="true" class="imageprocessing:histogram" compatibility="1.3.003" expanded="true" height="60" name="histogram" width="90" x="313" y="75">
<parameter key="Bins" value="32"/>
</operator>
<operator activated="true" class="imageprocessing:BIC" compatibility="1.3.003" expanded="true" height="76" name="BIC" width="90" x="313" y="165"/>
<operator activated="true" class="imageprocessing:dLog_distance" compatibility="1.3.003" expanded="true" height="60" name="dLog" width="90" x="447" y="165"/>
<operator activated="true" class="imageprocessing:color_model_operator" compatibility="1.3.003" expanded="true" height="60" name="ClrToGS" width="90" x="313" y="435">
<parameter key="Color component" value="Red"/>
</operator>
<operator activated="true" class="imageprocessing:obcf" compatibility="1.3.003" expanded="true" height="60" name="OBCF" width="90" x="447" y="435"/>
<operator activated="true" class="imageprocessing:color_model_operator" compatibility="1.3.003" expanded="true" height="60" name="ClrToGS (2)" width="90" x="313" y="345">
<parameter key="Color component" value="Green"/>
</operator>
<operator activated="true" class="imageprocessing:obcf" compatibility="1.3.003" expanded="true" height="60" name="OBCF (2)" width="90" x="447" y="345"/>
<operator activated="true" class="imageprocessing:color_model_operator" compatibility="1.3.003" expanded="true" height="60" name="ClrToGS (3)" width="90" x="313" y="255">
<parameter key="Color component" value="Blue"/>
</operator>
<operator activated="true" class="imageprocessing:obcf" compatibility="1.3.003" expanded="true" height="60" name="OBCF (3)" width="90" x="447" y="255"/>
<connect from_port="color image plus 1" to_op="Global statistics" to_port="color image plus"/>
<connect from_port="color image plus 2" to_op="histogram" to_port="color image plus"/>
<connect from_port="color image plus 3" to_op="BIC" to_port="color image plus"/>
<connect from_port="color image plus 4" to_op="ClrToGS" to_port="color image plus"/>
<connect from_port="color image plus 5" to_op="ClrToGS (2)" to_port="color image plus"/>
<connect from_port="color image plus 6" to_op="ClrToGS (3)" to_port="color image plus"/>
<connect from_op="Global statistics" from_port="features" to_port="feature 1"/>
<connect from_op="histogram" from_port="features" to_port="feature 2"/>
<connect from_op="BIC" from_port="grayscale image plus Hist" to_op="dLog" to_port="grayscale image plus Hist"/>
<connect from_op="dLog" from_port="features" to_port="feature 5"/>
<connect from_op="ClrToGS" from_port="grayscale image plus" to_op="OBCF" to_port="grayscale image plus"/>
<connect from_op="OBCF" from_port="features" to_port="feature 4"/>
<connect from_op="ClrToGS (2)" from_port="grayscale image plus" to_op="OBCF (2)" to_port="grayscale image plus"/>
<connect from_op="OBCF (2)" from_port="features" to_port="feature 6"/>
<connect from_op="ClrToGS (3)" from_port="grayscale image plus" to_op="OBCF (3)" to_port="grayscale image plus"/>
<connect from_op="OBCF (3)" from_port="features" to_port="feature 7"/>
<portSpacing port="source_color image plus 1" spacing="0"/>
<portSpacing port="source_color image plus 2" spacing="0"/>
<portSpacing port="source_color image plus 3" spacing="0"/>
<portSpacing port="source_color image plus 4" spacing="0"/>
<portSpacing port="source_color image plus 5" spacing="0"/>
<portSpacing port="source_color image plus 6" spacing="0"/>
<portSpacing port="source_color image plus 7" spacing="0"/>
<portSpacing port="sink_feature 1" spacing="0"/>
<portSpacing port="sink_feature 2" spacing="0"/>
<portSpacing port="sink_feature 3" spacing="0"/>
<portSpacing port="sink_feature 4" spacing="0"/>
<portSpacing port="sink_feature 5" spacing="0"/>
<portSpacing port="sink_feature 6" spacing="0"/>
<portSpacing port="sink_feature 7" spacing="0"/>
<portSpacing port="sink_feature 8" spacing="0"/>
</process>
</operator>
<connect from_port="color image plus" to_op="Global Feature Extractor from a Single Image" to_port="color image plus"/>
<connect from_op="Global Feature Extractor from a Single Image" from_port="example set" to_port="Example set"/>
<portSpacing port="source_color image plus" spacing="0"/>
<portSpacing port="sink_Example set" spacing="0"/>
</process>
</operator>
<connect from_op="MCIO" from_port="example set" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>
Best,
Václav0