Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 6

Помощь с нейросеткой с opencv. Error in module: Name 'opencv' is not defined

13.10.2023, 21:43. Показов 1686. Ответов 7

Студворк — интернет-сервис помощи студентам
Ребят, привет. Признаюсь честно, я начинающий программист, и делал раньше в основном простые задачи, связанные с математическими выражениями и стандартной библиотекой math. На форуме я здесь впервые, только что зарегался.

Дело вот в чём. Я решил поработать с нейросетями, распознающими различного рода объекты и предметы при помощи камеры смартфона Android. Естественно, на нём же и работаю. Стоит отметить, что у меня до этого не было опыта работы с нейросетями, и я, буду честен, делаю это впервые. Я взял код с туториала на proglib. Если нужно, скину ссылку позже, если это не запрещено правилами, или разберусь как это делать. Среда у меня стоит IDE CodingPython, с версией 3.8.10.

Нейросеть, по сути, должна распознавать объекты на камере телефона. Естественно, при помощи библиотеки opencv. Лично у моей IDE нет установки pip через командную строку, поэтому я делаю это через подпроцесс (решение взято со stackoverflow). И делаю я это так:

Python
1
2
3
4
5
6
7
8
9
10
import subprocess
import sys
 
def install(package):
    subprocess.check_call([sys.executable, "-m", "pip", "install", package])
 
install(opencv-python)
install(numpy)
install(argparse)
install(imutils)
и только потом импортирую библиотеки в код:

Python
1
2
3
4
5
6
7
8
# import the necessary packages
from imutils.video import VideoStream
from imutils.video import FPS
import numpy as np
import argparse
import imutils
import time
import cv2

Что в итоге? Код не выполняется. Выдаёт такую ошибку:

Traceback (most recent call last):
File "/data/user/0/com.kvassyu.coding.py/files/default.py", line 7, in <module>
install(opencv-python)
NameError: name 'opencv' is not defined


Я пробрвал и гуглить в том числе, но к сожалению, лично мой случай никто не затрагивал, и не рассматривал на просторах инета.

На всякий, я напишу код с туториала сюда, и именно на случай, если вы заметите другие ошибки (в синтаксисе, и тому подобные), чтобы вы могли помочь тем людям, которые воспользовались данным туториалом. Я правда не нашёл именно такого решения, который рассматривает именно мою ситуацию. Что ж, пускай же я буду первым)))


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--prototxt", required=True,
    help="path to Caffe 'deploy' prototxt file")
ap.add_argument("-m", "--model", required=True,
    help="path to Caffe pre-trained model")
ap.add_argument("-c", "--confidence", type=float, default=0.2,
    help="minimum probability to filter weak detections")
args = vars(ap.parse_args())
 
 
# initialize the list of class labels MobileNet SSD was trained to
# detect, then generate a set of bounding box colors for each class
CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat",
    "bottle", "bus", "car", "cat", "chair", "cow", "diningtable",
    "dog", "horse", "motorbike", "person", "pottedplant", "sheep",
    "sofa", "train", "tvmonitor"]
COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3))
 
 
# load our serialized model from disk
print("[INFO] loading model...")
net = cv2.dnn.readNetFromCaffe(args["prototxt"], args["model"])
 
# initialize the video stream, allow the cammera sensor to warmup,
# and initialize the FPS counter
print("[INFO] starting video stream...")
vs = VideoStream(src=0).start()
time.sleep(2.0)
fps = FPS().start()
 
 
# loop over the frames from the video stream
while True:
    # grab the frame from the threaded video stream and resize it
    # to have a maximum width of 400 pixels
    frame = vs.read()
    frame = imutils.resize(frame, width=400)
 
    # grab the frame dimensions and convert it to a blob
    (h, w) = frame.shape[:2]
    blob = cv2.dnn.blobFromImage(cv2.resize(frame, (300, 300)),
        0.007843, (300, 300), 127.5)
 
    # pass the blob through the network and obtain the detections and
    # predictions
    net.setInput(blob)
    detections = net.forward()
    
# loop over the detections
    for i in np.arange(0, detections.shape[2]):
        # extract the confidence (i.e., probability) associated with
        # the prediction
        confidence = detections[0, 0, i, 2]
 
        # filter out weak detections by ensuring the `confidence` is
        # greater than the minimum confidence
        if confidence > args["confidence"]:
            # extract the index of the class label from the
            # `detections`, then compute the (x, y)-coordinates of
            # the bounding box for the object
            idx = int(detections[0, 0, i, 1])
            box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
            (startX, startY, endX, endY) = box.astype("int")
 
            # draw the prediction on the frame
            label = "{}: {:.2f}%".format(CLASSES[idx],
                confidence * 100)
            cv2.rectangle(frame, (startX, startY), (endX, endY),
                COLORS[idx], 2)   
                
                
 
 
# show the output frame
    cv2.imshow("Frame", frame)
    key = cv2.waitKey(1) & 0xFF
 
    # if the `q` key was pressed, break from the loop
    if key == ord("q"):
        break
 
    # update the FPS counter
    fps.update()
    
    
# stop the timer and display FPS information
fps.stop()
print("[INFO] elapsed time: {:.2f}".format(fps.elapsed()))
print("[INFO] approx. FPS: {:.2f}".format(fps.fps()))
 
# do a bit of cleanup
cv2.destroyAllWindows()
vs.stop()


В общем, люди добрые, помогите пожалуйста, я и сам код этот понимаю только в общих чертах, касательно именно самой-самой базы синтаксиса. Да и кто нынче не "тырил" из народа честного куски кода с разных форумов. И я, вот, тоже не исключение

Добавлено через 4 минуты
И... да ребят, я понимаю, что вы в лёгком недоумении от того, что я кодю на телефоне, но... пока что мне вот так удобнее на сегдняшний момент. Вы уж извините)) Тем более под рукой, так сказать)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.10.2023, 21:43
Ответы с готовыми решениями:

Opencv error the function/feature is not implemented (opencv was built without surf support)
Недавно настроила OpenCV для CodeBlocks, однако первый пример поиска плоских объектов с помощью этого кода #include...

Лабораторная bag-of-words image classification OpenCV 2.4 в OpenCV 3
Здравствуйте! Делал лабораторную с интуита по OpenCV, но там она для старой версии, а мне нужно в новой. Лабораторная по bag-of-words...

Opencv Error
Mat H = cv::findHomography( obj, scene, CV_RANSAC ); На этой функции QtCreator выдает ошибку: Помогите найти ответ, в гугле или...

7
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
13.10.2023, 21:52
Лучший ответ Сообщение было отмечено GZH354 как решение

Решение

попробуйте таким образом
Python
1
install('opencv-python')
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
13.10.2023, 23:01
Цитата Сообщение от GZH354 Посмотреть сообщение
Лично у моей IDE нет установки pip через командную строку
но у тебя же есть консоль ОС. кроме того зачем такая ИДЕ нужна?

Цитата Сообщение от GZH354 Посмотреть сообщение
я начинающий программист
Цитата Сообщение от GZH354 Посмотреть сообщение
Я решил поработать с нейросетями
фразы несовместимые, начинать надо с привет мир, с обучения что такое виртуальное окружение, как ставить бибилиотеки, как читать ошибки
1
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 6
14.10.2023, 07:11  [ТС]
Welemir1, в данном случае, я не настолько начинающий, чтобы прям не знать, как ставить библиотеки, и как читать ошибки. Определённый опыт в написании "Привет, мир!", с работой в IDE, а также в правильном написании кода у меня имеется. Более того, я даже создавал Android-прилржение именно на данном языке (причём даже без использования Kyvi (поправьте, если написал неверно имя данной библиотеки), и в том числе без использования ПК. Но тем не менее, я отошёл от темы, и давайте лучше не будем начинать спор, насколько я начинающий. Просто, как ни странно, всё познаётся в сравнении, и по сравнению с вами, господа, я пока что новенький на форуме, и о вашем довольно большом и многочисленном опыте, могу только догадываться, к сожалению. Но тем не менее, я не отрицаю, что все мы люди разные, и может кто-то разбирается в этой теме больше, чем я)

фразы несовместимые, начинать надо с привет мир, с обучения что такое виртуальное окружение, как ставить бибилиотеки, как читать ошибки
Добавлено через 12 минут
но у тебя же есть консоль ОС. кроме того зачем такая ИДЕ нужна?
Welemir1, ну... скажем так. это пока что более идеальный вариант для меня. Там нет проблем с установкой импорта стандартных библиотек, например math. А множество IDE, характерных для данной операционной системы, имеют именно при себе локальный pip-репозиторий, где некоторые библиотеки, именно необходимые для определённого проекта, могут просто не оказаться там.Например, я работал и в Pydroid3,и в Qpython пробовал. Но в пипах Pydroid нет необходимых мне библиотек, а Qpython полная шляпа, потому что работает раз через раз. И так поиски привели меня к этой простенькой и со вскусом IDE, которая мне более чем удобна, и не имеет ничего лишнего

Добавлено через 4 минуты
TimutGin, спасибо, что помогаешь))) Сейчас проверю.
Правда, я не совсем понимаю... разве то, что мы преобразовали данные в строку, озночающие название пакета pip, не должно как-то влиять на сам импорт и установку библиотеки в код?

попробуйте таким образом
0
5514 / 2867 / 571
Регистрация: 07.11.2019
Сообщений: 4,751
14.10.2023, 08:01
GZH354, Python, Opencv и numpy у меня на телефоне работают в termux (если не пугает консоль), но TF запустить не удалось.. Как вариант: используйте Google Colab, там нейросети есть.
2
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
14.10.2023, 10:43
GZH354, в данном случае ошибка означает что переменная с именем 'open-cv' не найдена. Можно создать её со значением 'open-cv', или просто передать строку в функцию install и программа продолжит работу, пока не поймет что переменной numpy тоже не существует
1
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 6
16.10.2023, 06:10  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
GZH354, Python, Opencv и numpy у меня на телефоне работают в termux (если не пугает консоль), но TF запустить не удалось.. Как вариант: используйте Google Colab, там нейросети есть.
u235, Добрый день. Признаюсь честно, я и гугл-коллаб использовать пытался, но в конце концов понял, что он тоже нихрена не работает. Я ни в коем случае не имею в виду, что это довольно плохая идея, но... в его основе лежит оболочка линукса, а также его ядро, расположенное на серверной части (по моим предположениям). А если где-то есть линукс, то обязательно что-нибудь отвалится, и перестанет работать. Поэтому, сорян, тоже пробовал, дело дрянь. Но всё равно спасибо за совет)))


Как вариант: используйте Google Colab, там нейросети есть.
Добавлено через 11 минут
Цитата Сообщение от TimutGin Посмотреть сообщение
GZH354, в данном случае ошибка означает что переменная с именем 'open-cv' не найдена. Можно создать её со значением 'open-cv', или просто передать строку в функцию install и программа продолжит работу, пока не поймет что переменной numpy тоже не существует
Можно создать её со значением 'open-cv', или просто передать строку в функцию install и программа продолжит работу

TimutGin, В общем, я проверил, и это реально сработало)) Спасибо тебе огромное, ты меня очень выручил!) Всем. остальным, тоже спасибо, что проявляли активность в моём вопросе)) Так и быть, расскажу что случилось потом, как стал проверять

Код запустился. Пошла загрузка кэша open-cv в размере 97 Мб. Ну... код правда, к сожалению не сработал (т.е. камера не запустилась), ибо конкретно для этого кода нужна утилита от Nvidia, под названием, "Conditional Neural Network". Может есть какие её аналоги под андроид, которые можно в код добавить, или можно как-то эту утилиту добавить непосредстаенно в код, парой-тройкой строк? Т. е. програмно, не скачивая ПО от Nvidia, ибо, насколько я понял, она доступна только для windows((
0
0 / 0 / 0
Регистрация: 13.10.2023
Сообщений: 6
21.10.2023, 16:00  [ТС]
Ладно, ребят. Спасибо всем, что помогли)) Удачи вам в ваших начинаниях))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2023, 16:00
Помогаю со студенческими работами здесь

Qt+OpenCV+error 1073741515
Помогите разобраться с проблемой. Перехожу с Builder на QT. При этом сразу нужен OpenCV. В конечном итоге выпадает ошибка 1073741515. ...

OpenCV 2.4.8 parse error
Создаю файл vec, но выдается ошибка как на картинке. Опробовал на 2 компьютерах. Содержимой файла good.dat: good\0.bmp 0 0 99 51 ...

OpenCV with CodeBlocks and MinGW build error
Всем доброго времени суток. Решил поставить OpenCV 3.2.0 на Code::Blocks 16.01 с MinGW 7.1.0 GCC ставил вот отсюда...

Ошибка компиляции: error LNK2019 OpenCV VS2010
Система Windows 7 x64 VS 2010 Ultimate OpenCV 2.4.9 Я только пробую свои силы в VS С++.... Установку OpenCV делал по инструкции,...

Opencv error :-1: ошибка: main.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'
Добрый вечер, только начинаю знакомится с opencv Появились проблемы при запуске первого примера :-1: предупреждение:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru