For those interested to go deeper in what Q.bo actually sees or how the face detection works, I've written a small script that will show you a realtime video feed from his connected eye.
- Connect to Q.bo using VNC
- Copy the attached file Qbo_webcam.py to the /home/pi/ directory
- Press Ctrl+Alt+T to open a terminal
- Enter
sudo pkill python sudo pkill chromium
- Enter
python Qbo_webcam.py
A window appears named 'Video' showing what Q.bo actually realtime sees and where he detects faces. Green rectangles in the shown video window are detected frontal faces, blue rectangles in the shown video are detected profile faces. Exit by pressing 'q'.
--
Christian Buysschaert
Leuven - Belgium
Email christian.buysschaert@gmail.com
For those interested to go deeper in what Q.bo actually sees or how the face detection works, I've written a small script that will show you a realtime video feed from his connected eye.
- Connect to Q.bo using VNC
- Copy the attached file Qbo_webcam.py to the /home/pi/ directory
- Press Ctrl+Alt+T to open a terminal
- Enter
sudo pkill python sudo pkill chromium- Enter
python Qbo_webcam.pyA window appears named 'Video' showing what Q.bo actually realtime sees and where he detects faces. Green rectangles in the shown video window are detected frontal faces, blue rectangles in the shown video are detected profile faces. Exit by pressing 'q'.
Got it!!! we will include into the next OpenQbo version!!!
Good Job Chris!
There is more to come... I've rewritten the entire vision aspect of Q.bo using a tracker to be much more efficient. I had to recompile OpenCV on the Raspberry Pi so I am now finding a way to simplify this process somewhat (a compilation of OpenCV took Q.bo all night long!).
I am using the same HAAR cascades but with a CSRT tracker (although the KCF and MOSSE are faster but less accurate). I experimented also with DLIB as tracker (which I might switch to as well).
(Later I'll add face detection in PiFaceFast.py which seemed to have been removed?! I guess too slow... I know why there is interest in switching to a different more powerful board. ;-) )
--
Christian Buysschaert
Leuven - Belgium
Email christian.buysschaert@gmail.com
This is what I get "
/home/pi/Qbo_webcam.py ======================
Traceback (most recent call last):
File "/home/pi/Qbo_webcam.py", line 40, in <module>
webcam = cv2.VideoCapture(int(config['camera'])) # Get ready to start getting images from the webcam
TypeError: 'NoneType' object has no attribute '__getitem__' "
I am assuming the config['camera'] does not return a value.
Check /opt/qbo/config.yml for a line with...
camera: '0'
Or create a file with at least that line...
--
Christian Buysschaert
Leuven - Belgium
Email christian.buysschaert@gmail.com
Chrisbuy, I'm sorry, but in my configuration the / opt / qbo / directory is missing. The config.yml file is located in the / Documents / configQbo_GTK / ... directory. I modified your program and also in my case it returns error in line 40 ... "camera".
Chrisbuy, I'm sorry, but in my configuration the / opt / qbo / directory is missing. The config.yml file is located in the / Documents / configQbo_GTK / ... directory. I modified your program and also in my case it returns error in line 40 ... "camera".
Chrisbuy, I'm sorry, but in my configuration the / opt / qbo / directory is missing. The config.yml file is located in the / Documents / configQbo_GTK / ... directory. I modified your program and also in my case it returns error in line 40 ... "camera".
Hi romeo. I had the same issue untill I downloaded OpenQbo v3.0. which is located here. It tells you how to download it.
[edited] https://gitlab.c........... [edited]
Install
To install the QBO software you will need a clean Raspbian image running on the Raspberry Pi 3 in your QBO robot.
Download latest version of Raspbian from: https://www.raspberrypi.org/downloads/raspbian/
Before installing the QBO Software it is necessary that you activate the SERIAL interface. To activate the serial runs in the terminal execute the following command:
$ sudo raspi-config
Select option 5 'Interfacing Options' and then option P6 'Serial'. Finally, indicate the option 'Yes' to confirm the activation of the Serial port.
Once finished, restart the raspberry pi before continuing with the following steps. You can execute the following command to restart:
$ sudo reboot
Now, execute the following commands in terminal and the QBO system will be installed automatically. If any action is necessary, the installer will indicate it.
$ wget https://gitlab.com/thecorpora/QBO/raw/master/scripts/QBO_Installer.sh
$ chmod +x QBO_Installer.sh
$ sudo ./QBO_Installer.sh install # Add 'develop' if you prefer to install QBO software the development repositories. (Not recommended)
Once the Qbo installation is completed the system will restart and the QBO robot will be ready
I am assuming the config['camera'] does not return a value.
Check /opt/qbo/config.yml for a line with...
camera: '0'
Or create a file with at least that line...
So it does say "distro: standalone, language: english, microphoneGain: 100, camera: 0, servoSpeed: 100, tokenAPIai: , gassistant_proyectid: , dialogflowv2_projectid: , startWith: interactive-dialogflow, volume: 100 }"
I had to reset qbo after that I had much success with some previous problems with it. After repeating all these steps this is the new error I get
libv4l2: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl S_FMT
libv4l2: error setting pixformat: Device or resource busy
libv4l1: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /build/opencv-U1UwfN/opencv-2.4.9.1+dfsg1/modules/imgproc/src/color.cpp, line 3737
Traceback (most recent call last):
File "Qbo_webcam.py", line 66, in <module>
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /build/opencv-U1UwfN/opencv-2.4.9.1+dfsg1/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function cvtColor
When I run it with Thonny I get this error
File "/home/pi/Qbo_webcam.py", line 60
t_ini = time.time()
^
SyntaxError: inconsistent use of tabs and spaces in indentation
When I remove the extra tab I this:
Traceback (most recent call last):
File "/home/pi/Qbo_webcam.py", line 26, in <module>
import yaml
ImportError: No module named 'yaml'
Actually, I didn't kill python. After I killed it, it worked!
Chrisbuy, I'm sorry, but in my configuration the / opt / qbo / directory is missing. The config.yml file is located in the / Documents / configQbo_GTK / ... directory. I modified your program and also in my case it returns error in line 40 ... "camera".
Hi romeo. I had the same issue untill I downloaded OpenQbo v3.0. which is located here. It tells you how to download it. [edited] https://gitlab.c........... [edited]
Install
To install the QBO software you will need a clean Raspbian image running on the Raspberry Pi 3 in your QBO robot.
Download latest version of Raspbian from: https://www.raspberrypi.org/downloads/raspbian/
Before installing the QBO Software it is necessary that you activate the SERIAL interface. To activate the serial runs in the terminal execute the following command:
$ sudo raspi-config
Select option 5 'Interfacing Options' and then option P6 'Serial'. Finally, indicate the option 'Yes' to confirm the activation of the Serial port.
Once finished, restart the raspberry pi before continuing with the following steps. You can execute the following command to restart:
$ sudo reboot
Now, execute the following commands in terminal and the QBO system will be installed automatically. If any action is necessary, the installer will indicate it.
$ wget https://gitlab.com/thecorpora/QBO/raw/master/scripts/QBO_Installer.sh
$ chmod +x QBO_Installer.sh
$ sudo ./QBO_Installer.sh install # Add 'develop' if you prefer to install QBO software the development repositories. (Not recommended)
Once the Qbo installation is completed the system will restart and the QBO robot will be ready
I thought that this new version was not public ;)
It may not be v3.0. I just copied and paste chrisbuy link above. In that it says
#!/usr/bin/env python2 ############################################################### # Qbo_webcam.py # # Based upon "Face Detection in Python Using a Webcam" # ( https://realpython.com/face-detection-in-python-using-a-webcam/) # and "OpenQbo v3.0" ( https://gitlab.com/thecorpora/QBO) # # 1. Connect to Q.bo using VNC # 2. Copy this file Qbo_webcam.py to the /home/pi/ directory # 3. Press Ctrl+Alt+T to open a terminal # 4. Enter # sudo pkill python # sudo pkill chromium # 5. Enter # python Qbo_webcam.py # # Press 'q' to quit. # # Visual aid: # Green rectangles are detected frontal faces # Blue rectangles are detected profile faces
After looking around in the Qbo getlab link. I found it is v1.0. Weird.
https://gitlab.com/thecorpora/QBO/raw/master/scripts/QBO_Installer.sh
thanks a lot, I've tried the scripts and it works,but I realized that I have a long way to go ...
I do not make any rectangle unfortunately ....
I'm having difficulty in getting the face recognition to work.
python Qbo_webcam.py
Traceback (most recent call last):
File "Qbo_webcam.py", line 37, in <module>
config = yaml.safe_load(open("/opt/qbo/config.yml"))
IOError: [Errno 2] No such file or directory: '/opt/qbo/config.yml'
How can I check for the version of QBO that is installed? I'm running python 2.7.13.
I will start fresh with a virgin 64G memory and start anew. Load OpenQbo v-3. Should I load python 3? What version of CV is good?
HELP!