Классификация объектов и детекция объектов представляют два фундаментально разных подхода к работе с визуальными данными в области компьютерного зрения, каждый из которых выполняет специфические задачи и использует различные алгоритмы.
Классификация (classification) — это процесс определения, к какому
классу принадлежит объект, изображённый на входном
изображении. В ml5.js этот процесс реализуется через модели, обученные
на наборе заранее размеченных данных, таких как MobileNet,
ImageNet и другие.
Основные характеристики классификации:
Пример работы с классификацией в ml5.js:
let classifier;
let image;
function preload() {
classifier = ml5.imageClassifier('MobileNet');
image = loadImage('cat.jpg');
}
function setup() {
createCanvas(400, 400);
classifier.classify(image, (err, results) => {
if (err) {
console.error(err);
return;
}
console.log(results);
});
}
В этом примере модель MobileNet классифицирует
изображение кошки, возвращая массив объектов с названиями классов и
вероятностями, например
{label: 'tabby cat', confidence: 0.85}.
Детекция объектов (object detection) — это процесс не только
распознавания класса объекта, но и определения его
положения на изображении с помощью
ограничивающих рамок (bounding boxes). В ml5.js
используется модель cocossd, обученная на наборе COCO,
содержащем более 80 классов объектов.
Ключевые особенности детекции:
Модель анализирует изображение и выявляет несколько объектов одновременно.
Каждый объект характеризуется:
label)confidence)x, y, width,
height)Позволяет строить интерактивные приложения: отслеживание движения, подсчет объектов, визуальные подсказки.
Пример работы с детекцией в ml5.js:
let detector;
let image;
function preload() {
detector = ml5.objectDetector('cocossd');
image = loadImage('room.jpg');
}
function setup() {
createCanvas(640, 480);
detector.detect(image, (err, results) => {
if (err) {
console.error(err);
return;
}
results.forEach(obj => {
noFill();
stroke(255, 0, 0);
rect(obj.x, obj.y, obj.width, obj.height);
textSize(16);
fill(255, 0, 0);
text(`${obj.label} ${nf(obj.confidence * 100, 2, 1)}%`, obj.x, obj.y > 20 ? obj.y - 5 : obj.y + 15);
});
});
}
В этом примере модель cocossd находит объекты в комнате,
рисует вокруг них рамки и подписывает их класс и вероятность.
| Параметр | Классификация | Детекция объектов |
|---|---|---|
| Цель | Определение класса изображения | Определение классов и позиций объектов |
| Выход | Класс + вероятность | Класс + вероятность + координаты |
| Количество объектов | Один объект (обычно) | Несколько объектов одновременно |
| Применение | Распознавание объектов | Отслеживание, подсчет, интерактивное взаимодействие |
| Пример модели в ml5.js | MobileNet |
cocossd |
В реальных проектах классификация и детекция часто используются вместе:
Это позволяет комбинировать скорость детекции с точностью специализированных классификаторов.
Различие между классификацией и детекцией объектов является фундаментальным для проектирования систем компьютерного зрения и понимания возможностей ml5.js при работе с изображениями и видео.