Я использую API Google Cloud Vision для обнаружения захваченного изображения, полученного с пи-камеры, и если изображение обнаружено как животное, оно удалит изображение, а если нет, запустит другую функцию под названием: takePicture (image_name) , Мой скрипт работает абсолютно хорошо, но в большинстве случаев у меня возникает странная проблема под названием Ошибка сегментации , и когда это происходит, она не прерывает мою программу на Python, но моя клавиатура 4x4 (подключенная к RPi) перестает работать, а также автоматически создает еще один цикл программы Python, который все еще работает даже с «прерыванием клавиатуры».
def detectImage(self, image_name):
path = '/home/pi/homesecurity/pictures/' + image_name
max_results=1
with open(path, 'rb') as image_file:
content = image_file.read()
image = vision.types.Image(content=content)
objects = client.object_localization(image=image,max_results=max_results).localized_object_annotations
for object_ in objects:
if (object_.name == 'Animal' or object_.name == 'Cat' or object_.name == 'Dog' or object_.name == 'Bird' or object_.name == 'Insect'):
print ('False Alarm: This is an animal!')
os.remove('/home/pi/homesecurity/pictures/' + image_name) #Deletes the taken picture.
print 'File', image_name, 'has beeen deleted'
break
else:
Process(target=interact().takePicture(image_name)).start()
print('Not an animal!')
Возможно ли старое железо? потому что я использую Raspberry Pi Model B и Python 2.7
pi@raspberrypi:~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2835
Revision : 000e
Serial : 0000000095fec982
pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"