- To train the Squeezenet model on the Ethernet cables images to classify the status of Ethernet cables on the device under test
- To create the hardware-optimized inference engine with the trained model using the Intel OpenVINO toolkit for the Intel CPU and Intel-Movidius VPU
- To develop the Python/OpenCV-based application to classify the real-time status of Ethernet cables in the webcam images
CPU: Intel Core i7-8700K CPU @ 3.70GHz × 12
GPU: GeForce GTX 1080 x 2
RAM: 32 GB
OS: Ubuntu 16.04.5 LTS
Refer to this link for the training platform setup
Intel-Optimized Caffe
Intel OpenVINO Toolkit
CPU: Intel Xeon CPU
RAM: 16 GB
525 images per class
ON: All the Ethernet cables are ON
OFF: At least one Ethernet cable is OFF
- Split the images into training and validation datasets and create the corresponding text files using createTextFiles.py
- Resize the images into 227x227 and create the LMDB files using convert_txt_to_lmdb.sh
- Input the location of training and validation LMDB files in the train_val.prototxt to train the model
Train the fine-tuned Squeezenet model on the dataset using two GPUs
$CAFFE_ROOT/build/tools/caffe train --solver solver.prototxt --weights squeezenet_v1.0.caffemodel --gpu all
Execution Time: 1h 3m 40s; Iterations: 50000
Building the optimized inference engine for the Intel CPU
python3 /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --framework caffe --data_type FP32 --input_shape [1,3,227,227] --input data --mean_values data[104.0,117.0,123.0] --output prob --input_model train_cp_iter_50000.caffemodel --input_proto deploy.prototxt --output_dir ./
Building the optimized inference engine for the Intel VPU
python3 /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --framework caffe --data_type FP16 --input_shape [1,3,227,227] --input data --mean_values data[104.0,117.0,123.0] --output prob --input_model train_cp_iter_50000.caffemodel --input_proto ./FP16/deploy.prototxt --output_dir ./FP16/
/home/puzzle/Documents/CheckPoint/Classification/ImageClassification/image_classification_sync -d CPU -m /home/puzzle/Documents/CheckPoint/Classification/FP32/train_cp_iter_50000.xml -i /home/puzzle/Documents/CheckPoint/Classification/test_input.jpg
/home/puzzle/Documents/CheckPoint/Classification/ImageClassification/image_classification_sync -d MYRIAD -m /home/puzzle/Documents/CheckPoint/Classification/FP16/train_cp_iter_50000.xml -i /home/puzzle/Documents/CheckPoint/Classification/test_input.jpg
/home/puzzle/Documents/CheckPoint/Classification/VideoClassification/video_classification_async -d CPU -m /home/puzzle/Documents/CheckPoint/Classification/FP32/train_cp_iter_50000.xml -i /dev/video0
/home/puzzle/Documents/CheckPoint/Classification/VideoClassification/video_classification_async -d MYRIAD -m /home/puzzle/Documents/CheckPoint/Classification/FP16/train_cp_iter_50000.xml -i /dev/video0