У цій статті наведено огляд функцій, доступних для використання датчика AI Vision у Python, а також прості інструкції щодо їх використання. Ви дізнаєтеся про чотири кроки в процесі використання датчика зору AI, отримання даних, перегляд кількості отриманих об’єктів, вибір об’єкта з даних для використання та які дані з об’єкта отримати.
Отримуйте візуальні дані за допомогою датчика AI Vision Sensor
Щоб збирати інформацію про навколишнє середовище, датчик AI Vision Sensor робить зображення того, на що він зараз дивиться. Будь-які об’єкти, які він ідентифікує за допомогою зазначеногоVisual Signature , зберігаються всередині датчика зору AI, який потім може використовуватися іншими функціями.
.takeSnapshot
Будь-які візуальних підписів потрібно буде налаштувати, перш ніж їх можна буде використовувати як параметр. Під час використання методу вкажіть параметр підпису як ім’я датчика, подвійне підкреслення, а потім ім’я Visual Signature’s.
AIVision6.takeSnapshot(AIVision6__Blue)
AIVision6.takeSnapshot(AIVision6__Red)
AIVision6.takeSnapshot(AIVision6__Green)
приклад
У цьому прикладі метод .takeSnapshot
використовується для пошуку будь-яких об’єктів, які відповідають «синьому» візуальному підпису. Тоді код відобразить кількість об’єктів, знайдених для цього Visual Signature.
int main() {
while (true) {
// Зробіть знімок, щоб перевірити виявлені об'єкти
AIVision6.takeSnapshot(Blue);
// Очистити екран/скинути, щоб ми могли відобразити нову інформацію
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Вивести кількість виявлених об'єктів
Brain.Screen.print("кількість об'єктів: %d", AIVision6.objectCount);
очікування (0,5, секунди);
}
}
Визначте, скільки об'єктів було виявлено
Оскільки метод .takeSnapshot
може одночасно виявляти кілька об’єктів з однаковою Візуальною сигнатурою , ви можете дізнатися, скільки об’єктів було виявлено за допомогою властивості .objectCount
.
Brain.Screen.Print(“%d”, AIVision1.objectCount)
приклад
У цьому прикладі властивість .objectCount
використовується для перевірки того, чи було виявлено принаймні 1 Visual Signature на останньому знімку, а потім друкується значення true або false, якщо виявлено об’єкт. Якщо об’єкт було виявлено, він друкує підрахунок загальної кількості виявлених об’єктів.
int main() {
while (true) {
// Зробіть знімок, щоб перевірити виявлені об'єкти
AIVision6.takeSnapshot(Blue);
// Очистити екран/скинути, щоб ми могли відобразити нову інформацію
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// якщо об'єкти знайдено, вивести їх кількість
if (AIVision6.objectCount > 0) {
Brain.Screen.newLine();
Brain.Screen.print("кількість об'єктів: %d", AIVision6.objectCount);
}
очікування (0,5 секунд);
}
}
Виберіть, з якого об’єкта отримати дані
Існує два методи отримання даних із датчика зору AI. Одним із підходів є пряме отримання інформації з найбільшого об’єкта, виявленого під час останнього використання методу .takeSnapshot
за допомогою властивості AIVision.largestObject
. Інший метод використовує властивість AIVision.objects[]
і вказує індекс об’єкта.
AIVision.largestObject
ai.vision.largest_object()
— властивість доступу до найбільшого об’єкта.
int main() {
while (true) {
// Зробіть знімок, щоб перевірити виявлені об'єкти
AIVision6.takeSnapshot(BlueBox);
// Очистити екран/скинути, щоб ми могли відобразити нову інформацію
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Якщо об’єкти знайдено, надрукувати розташування
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Center X: %d, AIVision6.largestObject[0].centerX);
} else {
Brain.Screen.print("no object");
(0.5, seconds)
AIVision.об'єкти
Інший спосіб отримати дані – це вказати індекс об’єкта, з якого ви хочете отримати дані. Знімок повертає виявлені об’єкти з найбільшим об’єктом на початку з індексом 0 і впорядковує об’єкти від найбільшого до найменшого.
int main() {
while (true) {
// Зробіть знімок, щоб перевірити виявлені об'єкти
AIVision6.takeSnapshot(BlueBox);
// Очистити екран/скинути, щоб ми могли відобразити нову інформацію
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Якщо об’єкти знайдено, надрукувати розташування
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Center X: %d, AIVision6.objects[0].centerX);
} else {
Brain.Screen.print("no object");
(0.5, seconds)
Виберіть, які дані отримати з об’єкта
З кожного об’єкта є вісім властивостей, які можна викликати.
.висота
.ширина
.centerX
.centerY
.originX
.originY
.кут
.існує
.висота
Властивість .height
повертає висоту виявленого об’єкта в пікселях.
Використовуйте цей код, щоб повернути властивість .height
:
AIVision6.objects[0].height
Властивість .height
поверне значення від 0 до 240 пікселів.
.ширина
Властивість .width
повертає ширину виявленого об’єкта в пікселях.
Використовуйте цей код, щоб повернути властивість .width
:
AIVision6.objects[0].width
Властивість .width
поверне значення від 0 до 320.
.centerX
Властивість .centerX
повідомляє координату X центру виявленої Візуальної сигнатури.
Використовуйте цей код, щоб повернути властивість .centerX
:
AIVision6.objects[0].centerX
Властивість .centerX
поверне число від 0 до 320.
.centerY
Властивість .centerY
повідомляє координату Y центру виявленої Візуальної сигнатури.
Використовуйте цей код, щоб повернути властивість .centerY
:
AIVision6.objects[0].centerY
Властивість .centerY
поверне число від 0 до 240.
.originX
Властивість .originX
повідомляє координату X крайнього верхнього лівого кута виявленої візуальної сигнатури.
Використовуйте цей код, щоб повернути властивість .originX
:
AIVision6.objects[0].originX
Властивість .originX
поверне число від 0 до 320.
.originY
Властивість .originY
повідомляє координату Y крайнього верхнього лівого кута виявленої візуальної сигнатури .
Використовуйте цей код, щоб повернути властивість .originY
:
AIVision6.objects[0].originY
Властивість .originY
поверне число від 0 до 240.
.кут
Властивість .angle
повертає значення кута коду кольору .
Використовуйте цей код, щоб повернути властивість .angle
:
AIVision6.objects[0].angle
Властивість .angle
повертає виявлену орієнтацію коду кольору в діапазоні від 0 до 359,99 градусів.
.існує
.exists
є логічною властивістю, яка повертає істину, якщо це дійсний об’єкт.
Він поверне false, якщо об’єкт недійсний, наприклад, якщо використовується від’ємне ціле число. Якщо об’єкт недійсний, усі інші властивості повертатимуть 0 як значення.
int main() {
while (true) {
// Зробіть знімок, щоб перевірити виявлені об'єкти
AIVision6.takeSnapshot(BlueBox);
// Очистити екран/скинути, щоб ми могли відобразити нову інформацію
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
// Якщо об’єкти знайдено, надрукувати розташування
if (AIVision6.objects[0].exists) {
Brain.Screen.print("Center X: %d, AIVision6.objects[0].centerX);
} else {
Brain.Screen.print("no object");
(0.5, seconds)