Hello, this is swim-lover. I’m trying object detection by Pytourch. I’ve just started Python, and I’m studying with the concept of “learning while using”. Last time, as an object detection by Pytorch, I ran object detection (SSD) in the Google Colab environment. This time, I would like to perform object detection using an implementation sample called MobileNet.
Downloading Object Detection (SSD) Execution Environment
This time, I will try an implementation sample called MobileNet. It is an implementation that works on mobile terminals.
Files downloaded in the Colab environment will disappear after a certain period of time. It seems that the cause is that the Colab environment is reset, but it is hard to start over from the beginning because the downloaded files, packages, training data, etc. disappear.
Therefore, if you mount My Drive of Google Drive in the Colab environment and handle the file on My Driver, the problem of disappearing will disappear.
First, execute the following command in the colab environment. At this time, a confirmation screen for access permission will appear, so allow it.
from google.colab import drive drive.mount('/content/drive')
Let’s check if the mount was successful.
I was able to confirm that MyDrive was mounted.
I would like to create a folder called pytorch-ssd-test and proceed with the confirmation here.
Next, download the SSD execution sample with the following git command. In the colab environment, it seems that you need to put an exclamation mark (“!”) before the Linux command.
However, the commands mentioned above (pwd, ls, cd, etc.) could be executed without adding them. You may be able to execute frequently used commands without adding them. (This content may be corrected at a later date.)
!git clone https://github.com/qfgaohao/pytorch-ssd.git
Cloning into 'pytorch-ssd'... remote: Enumerating objects: 812, done. remote: Total 812 (delta 0), reused 0 (delta 0), pack-reused 812 Receiving objects: 100% (812/812), 1.05 MiB | 359.00 KiB/s, done. Resolving deltas: 100% (544/544), done
Let’s check if the download is successful.
I was able to confirm that it was downloaded properly.
convert_to_caffe2_models.py README.md draw_eval_results.py readme_ssd_example.jpg eval_ssd.py run_ssd_example.py extract_tf_weights.py run_ssd_live_caffe2.py gun.jpg run_ssd_live_demo.py LICENSE train_ssd.py models/ translate_tf_mobilenetv1.py open_images_downloader.py vision/ prune_alexnet.py visual_tf_models.py
Check the README file
Check the README file included in the downloaded file.
When you enter the less command, a help screen appears in your browser and you can see the contents of the README. It is quite excellent.
This time, I would like to run Mobilenet V1 SSD.
Downloading trained model
Only the execution script was downloaded by the above git command. Download the trained model there. (The contents of the models are still empty.)
Download the trained model and label with the following command. Execute the command with an exclamation mark at the beginning.
・The trained model tata
!wget -P models https://storage.googleapis.com/models-hao/mobilenet-v1-ssd-mp-0_675.pth
・The label data
!wget -P models https://storage.googleapis.com/models-hao/voc-model-labels.txt
Run the sample
Place the image you want to identify in the pytorch_ssd folder. This time I tried using the image of the bicycle.
Run the sample script “run_ssd_example.py”.
!python3 run_ssd_example.py mb1-ssd models/mobilenet-v1-ssd-mp-0_675.pth models/voc-model-labels.txt sample.jpg
“Run_ssd_example_output.jpg” was output as an output file.
Inference time: 0.32605862617492676 Found 1 objects. The output image is run_ssd_example_output.jpg
This trained model was aware of the bicycle. However, This model recognized two bicycles as one. It may have been a little difficult image.
Try another image.
This time, This model was able to recognize four bicycles.
This time, I tried object recognition using Mobile Net, which is an implementation sample of object detection (SSD) with Pytorch. I would like to continue object recognition from the next time onwards.
I’m an embedded software engineer. I have avoided front-end technology so far, but I started studying to acquire technology in a different field.
My hobbies are swimming, road bike, running and mountaineering.
We will send out information about embedded technology, front-end technology that we have studied, and occasional hobby exercises.