Анотуйте дані хмарних точок щільних точок за допомогою SageMaker Ground Truth

Вихідний вузол: 834877

Як правило, використовують автономні транспортні компанії LiDAR датчики для створення 3D -розуміння навколишнього середовища навколо своїх транспортних засобів. Наприклад, вони встановлюють датчик LiDAR на свої транспортні засоби, щоб безперервно знімати моментальні знімки навколишнього 3D-середовища. Вихід датчика LiDAR являє собою послідовність 3D -хмарних кадрів точок (типова швидкість зйомки становить 10 кадрів в секунду). Основна правда Amazon SageMaker дозволяє легко мітити об’єкти в одному 3D -кадрі або в послідовності 3D -хмарних кадрів точок для побудови навчальних наборів даних машинного навчання (ML). Ground Truth також підтримує злиття датчиків даних камери та LiDAR за допомогою до восьми входів відеокамери.

Оскільки датчики LiDAR стають більш доступними та економічно ефективними, клієнти все частіше використовують дані хмарних точок у нових просторах, таких як робототехніка, відображення сигналів та доповнена реальність. Деякі нові мобільні пристрої навіть включають датчики LiDAR, один з яких надав дані для цієї публікації! Зростаюча доступність датчиків LiDAR підвищила інтерес до даних хмарних точок для завдань ML, таких як виявлення та відстеження 3D -об'єктів, 3D -сегментація, синтез та реконструкція 3D -об'єктів, і навіть використання 3D -даних для перевірки 2D -оцінки глибини.

Незважаючи на те, що дані щільної хмари точок багаті інформацією (більше 1 мільйона хмар точок), їх складно позначити, оскільки маркування робочих станцій часто має обмежену пам'ять, а графічні можливості та анотатори мають тенденцію бути географічно розподіленими, що може збільшити затримку. Незважаючи на те, що велика кількість точок може бути візуалізована на робочій станції етикетки, пропускна здатність етикетки може бути зменшена через час рендерингу при роботі з багатомільйонними хмарами точок, що значно збільшує витрати на маркування та зменшує ефективність.

Спосіб зменшення цих витрат і часу полягає в тому, щоб перетворити завдання маркування хмари точок у менші, легше відтворювані завдання, які зберігають більшість початкової інформації хмари точок для анотування. Ми широко згадуємо ці підходи як пониження тиску, схожий на пониження тиску в області обробки сигналів. Як і в області обробки сигналів, підходи зменшення вибірки хмар точок намагаються видалити точки, зберігаючи вірність вихідної хмари точок. При коментуванні хмар точок без вибірки можна використовувати вихід 3D кубоїди та цінності відстеження об'єктів та виявлення об'єкта завдання безпосередньо для навчання або перевірки в повнорозмірній хмарі точок, практично не впливаючи на продуктивність моделі, заощаджуючи час маркування. Для інших способів, наприклад семантична сегментація, у якій кожна точка має свою власну мітку, ви можете використовувати свої мітки з меншою вибіркою, щоб передбачити мітки для кожної точки у вихідній хмарі точок, що дозволяє вам компромісувати між вартістю маркування (а отже, кількістю мічених даних) та невеликою кількістю неправильна класифікація точок у повнорозмірній хмарі точок.

У цьому пості ми розповімо про те, як виконувати методи зменшення вибірки, щоб підготувати дані хмари точок до маркування, а потім продемонструємо, як підвищити вибірку вихідних міток, щоб застосувати їх до вашого вихідного повнорозмірного набору даних, використовуючи деякі вибіркові умовиводи за допомогою простої моделі ML. Для цього ми використовуємо ґрунтову правду та Екземпляри ноутбуків Amazon SageMaker виконувати маркування та всі кроки попередньої обробки та подальшої обробки.

Дані

Дані, які ми використовуємо в цій публікації, - це сканування даху багатоквартирного будинку, створене за допомогою програми 3D -сканер на iPhone12 Pro. Додаток дозволяє використовувати вбудовані сканери LiDAR на мобільних пристроях для сканування певної області та експорту файлу хмари точок. У цьому випадку дані хмари точок мають формат xyzrgb, прийнятний формат для хмари точок Ground Truth. Докладніше про типи даних, дозволених у хмарі точок Ground Truth, див Прийняті формати необроблених 3D -даних.

На наступному зображенні показано наше 3D -сканування.

Методи

Спочатку ми розглянемо кілька підходів до зменшення розміру набору даних для хмарних точок: маркування, вибірка з фіксованим кроком та середнє значення вокселів. Ми демонструємо, чому методи зменшення вибірки можуть збільшити пропускну здатність маркування без істотної шкоди для якості анотацій, а потім демонструємо, як використовувати мітки, створені в хмарі точок, що зменшуються, і застосовувати їх до вихідної хмари точок із підходом до вибірки.

Підходи до зменшення вибірки

Зменшення вибірки бере ваш повнорозмірний набір даних і або обирає з нього підмножину точок для позначення, або створює репрезентативний набір нових точок, які не обов’язково є у вихідному наборі даних, але достатньо близькі, щоб дозволити маркування.

Черепиця

Один наївний підхід - розбити хмарний простір точок на 3D -кубики, які ще називаються вокселі, з (наприклад) 500,000 XNUMX точок кожен, які позначаються незалежно паралельно. Такий підхід, що називається плитка, ефективно зменшує розмір сцени для маркування.

Однак це може значно збільшити час та витрати на маркування, оскільки типову сцену з 8 мільйонами точок може знадобитися розбити на понад 16 підсцен. Велика кількість незалежних завдань, що виникають у результаті цього методу, означає, що більше часу анотатора витрачається на перемикання контекстів між завданнями, і працівники можуть втратити контекст, коли сцена занадто мала, що призведе до неправильно позначених даних.

Зразок з фіксованим кроком

Альтернативним підходом є вибір або створення зменшеної кількості точок лінійною підвибіркою, яка називається а зразок з фіксованим кроком. Припустимо, ви хочете досягти цілі в 500,000 XNUMX балів (ми помітили, що це зазвичай можна обробити на споживчому ноутбуці - див. Прийнятий формат необроблених 3D -даних), але у вас є хмара точок з 10 мільйонами точок. Розрахувати розмір кроку можна так step = 10,000,000 / 500,000 = 20. Після того як у вас є розмір кроку, ви можете вибрати кожну 20 -ту точку у наборі даних, створивши нову хмару точок. Якщо ваші дані в хмарі точок мають достатньо високу щільність, етикетки все одно зможуть розрізняти будь -які відповідні функції для маркування, навіть якщо у вихідній сцені ви можете мати лише 1 бал за кожні 20.

Недоліком такого підходу є те, що не всі точки сприяють остаточному результату зменшення вибірки, а це означає, що якщо точка є однією з небагатьох важливих, але не є частиною вибірки, ваші анотатори можуть повністю пропустити цю функцію.

Середнє значення вокселів

Необхідно виконати альтернативну форму зменшення вибірки, яка використовує всі точки для створення хмари точок з пониженою вибіркою сітчаста фільтрація. Фільтрування сітки означає, що ви розбиваєте вхідний простір на звичайні тривимірні поля (або вокселі) по всій хмарі точок і замінюєте всі точки у вокселі однією репрезентативною точкою (наприклад, середньою точкою). Наступна діаграма показує зразок воксельного червоного ящика.

Якщо немає точок із вхідного набору даних у межах певного вокселя, жодна точка не додається до хмари точок, що зменшилася, для цього вокселя. Сітчасте фільтрування відрізняється від вибірки з фіксованим кроком, оскільки ви можете використовувати його для зменшення шуму та подальшої його настройки, регулюючи розмір ядра та функцію усереднення, щоб отримати трохи інші хмари кінцевих точок. Нижче наведені хмари точок показують результати простого (вибірка з фіксованим кроком) та розширеного (середнє воксельне) зниження вибірки. Зменшена вибірка хмар точок за допомогою вдосконаленого методу є більш плавною, це особливо помітно при порівнянні стіни з червоної цегли в задній частині обох сцен.

Підхід підвищення вибірки

Після зменшення вибірки та маркування ваших даних, можливо, вам захочеться побачити мітки, виготовлені на меншій хмарі точок без вибірки, спроектованої на повнорозмірну хмару точок, яку ми називаємо переоцінка. Завдання виявлення або відстеження об'єктів не вимагають подальшої обробки для цього. Мітки в хмарі точок, що зменшуються, (наприклад, кубоїди), безпосередньо застосовуються до більшої хмари точок, оскільки вони визначаються у просторі координат світу, спільному для повнорозмірної хмари точок (x, y, z, висота, ширина, довжина). Ці мітки є мінімально сприйнятливими до дуже малих помилок уздовж меж об'єктів, коли гранична точка не була в наборі даних, що зменшилась, але такі випадкові та незначні помилки переважуються кількістю додаткових, правильно позначених точок у кубоїді, які також можуть бути навчався на.

Однак для завдань семантичної сегментації хмарних точок точок мітки не застосовуються безпосередньо до повнорозмірного набору даних. У нас є лише підмножина міток, але ми хочемо передбачити решту повних міток набору даних на основі цієї підмножини. Для цього ми можемо скористатися простим Класифікатор K-найближчих сусідів (K-NN) з вже позначеними точками, які служать навчальним набором. K-NN-це простий керований алгоритм ML, який передбачає мітку точки, використовуючи найближчі позначені точки "K" та зважений голос. За допомогою K-NN ми можемо передбачити клас точок решти немечених точок у повнорозмірному наборі даних на основі класу більшості трьох найближчих (за євклідовою відстанню) точок. Ми можемо далі вдосконалити цей підхід, змінюючи гіперпараметри класифікатора K-NN, наприклад кількість найближчих точок, які слід враховувати, а також метрику відстані та схему зважування точок.

Після того, як ви зіставите вибіркові мітки з повним набором даних, ви можете візуалізувати плитки в повнорозмірному наборі даних, щоб побачити, наскільки добре працювала стратегія підвищення вибірки.

Тепер, коли ми переглянули методи, використані в цій публікації, ми демонструємо ці методи в блокноті SageMaker на прикладі семантичної хмари точок сегментації точок.

Передумови

Щоб пройти через це рішення, вам потрібно наступне:

  • An Обліковий запис AWS.
  • Блокнот Управління ідентифікацією та доступом AWS (IAM) з дозволами, необхідними для завершення цього покрокового огляду. До вашої ролі IAM повинні бути прикріплені такі керовані політики AWS:
    • AmazonS3FullAccess
    • AmazonSageMakerFullAccess
  • An Служба простого зберігання Amazon (Amazon S3) відро, де зберігаються артефакти ноутбука (вхідні дані та мітки).
  • Робоча команда SageMaker. Для цієї публікації ми використовуємо приватну робочу групу. Ви можете створити робочу групу на консолі SageMaker.

Налаштування ноутбука

Ми використовуємо зошит ground_truth_annotation_dense_point_cloud_tutorial.ipynb в Приклади SageMaker розділ екземпляра ноутбука, щоб продемонструвати ці підходи зниження та дискретизації. Цей блокнот містить увесь код, необхідний для попередньої обробки, маркування та постобробки.

Щоб отримати доступ до блокнота, виконайте наведені нижче дії.

  1. Створіть екземпляр блокнота. Ви можете використовувати тип екземпляра, ml.t2.xlarge, щоб запустити екземпляр блокнота. Виберіть екземпляр з принаймні 16 ГБ оперативної пам’яті.
    1. Вам потрібно використовувати роль IAM блокнота, яку ви створили раніше. Ця роль дозволяє вашому блокноту завантажувати ваш набір даних на Amazon S3 та викликати API -рішення рішення.
  2. Відкрийте Jupyter Lab або Jupyter для отримати доступ до вашого екземпляра ноутбука.
  3. У Jupyter виберіть Приклади SageMaker У Jupyter Lab виберіть значок SageMaker.
  4. Вибирати Вакансії з маркування наземної правди а потім виберіть ipynb зошит.
  5. Якщо ви використовуєте Jupyter, виберіть Скористайтесь скопіювати блокнот у свій екземпляр і запустити його. Якщо ви знаходитесь у лабораторії Jupyter, виберіть Створіть копію.

Надайте вхідні дані для ноутбука

По -перше, ми змінюємо блокнот, щоб додати нашу приватну робочу групу ARN та розташування ковша, яке ми використовуємо для зберігання нашого набору даних, а також наших міток.

Розділ 1: Отримайте набір даних та візуалізуйте хмару точок

Ми завантажуємо наші дані, запустивши Розділ 1 нашого блокнота, який завантажує наш набір даних з Amazon S3 і завантажує хмару точок у наш екземпляр ноутбука. Ми завантажуємо спеціально підготовлені дані з відра, що належить AWS. Об'єкт під назвою rooftop_12_49_41.xyz має знаходитися в корені ковша S3. Ці дані являють собою сканування даху багатоквартирного будинку на замовлення, створене на мобільному пристрої. У цьому випадку дані хмари точок у форматі xyzrgb.

Ми можемо візуалізувати нашу хмару точок за допомогою Matplotlib scatter3d функція. Файл хмари точок містить усі правильні точки, але повертається неправильно. Ми можемо обертати об’єкт навколо своєї осі, помноживши хмару точок на матрицю обертання. Ми можемо отримати матрицю обертання за допомогою Скупи і вкажіть ступінь змін, які ми хочемо внести до кожної осі, використовуючи from_euler метод:

!aws s3 cp s3://smgt-downsampling-us-east-1-322552456788/rooftop_12_49_41.xyz pointcloud.xyz # Let's read our dataset into a numpy file pc = np.loadtxt("pointcloud.xyz", delimiter=",") print(f"Loaded points of shape {pc.shape}") # playing with view of 3D scene from scipy.spatial.transform import Rotation def plot_pointcloud(pc, rot = [[30,90,60]], color=True, title="Simple Downsampling 1", figsize=(50,25), verbose=False): if rot: rot1 = Rotation.from_euler('zyx', [[30,90,60]], degrees=True) R1 = rot1.as_matrix() if verbose: print('Rotation matrix:','n',R1) # matrix multiplication between our rotation matrix and pointcloud pc_show = np.matmul(R1, pc.copy()[:,:3].transpose() ).transpose() if color: try: rot_color1 = np.matmul(R1, pc.copy()[:,3:].transpose() ).transpose().squeeze() except: rot_color1 = np.matmul(R1, np.tile(pc.copy()[:,3],(3,1))).transpose().squeeze() else: pc_show = pc fig = plt.figure( figsize=figsize) ax = fig.add_subplot(111, projection="3d") ax.set_title(title, fontdict={'fontsize':20}) if color: ax.scatter(pc_show[:,0], pc_show[:,1], pc_show[:,2], c=rot_color1[:,0], s=0.05) else: ax.scatter(pc_show[:,0], pc_show[:,1], pc_show[:,2], c='blue', s=0.05) # rotate in z direction 30 degrees, y direction 90 degrees, and x direction 60 degrees rot1 = Rotation.from_euler('zyx', [[30,90,60]], degrees=True) print('Rotation matrix:','n', rot1.as_matrix()) plot_pointcloud(pc, rot = [[30,90,60]], color=True, title="Full pointcloud", figsize=(50,30)) 

Розділ 2: Зменшити вибірку набору даних

Далі ми зменшуємо вибірку набору даних до менш ніж 500,000 XNUMX точок, що є ідеальною кількістю точок для візуалізації та маркування. Для отримання додаткової інформації див Обмеження роздільної здатності хмари точок in Прийняті формати необроблених 3D -даних. Потім ми наносимо результати нашого зменшення вибірки, виконуючи Розділ 2.

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

Більш просунутий підхід полягає в тому, щоб розбити вхідний простір на кубики, інакше відомі як вокселі, і вибрати одну точку на поле, використовуючи функцію усереднення. Проста реалізація цього показана в наступному коді.

Ви можете налаштувати цільову кількість точок і розмір коробки, які використовуються для того, щоб побачити зменшення чіткості хмари точок у міру виконання більш агресивного зменшення вибірки.

#Basic Approach target_num_pts = 500_000 subsample = int(np.ceil(len(pc) / target_num_pts)) pc_downsample_simple = pc[::subsample] print(f"We've subsampled to {len(pc_downsample_simple)} points") #Advanced Approach boxsize = 0.013 # 1.3 cm box size. mins = pc[:,:3].min(axis=0) maxes = pc[:,:3].max(axis=0) volume = maxes - mins num_boxes_per_axis = np.ceil(volume / boxsize).astype('int32').tolist() num_boxes_per_axis.extend([1]) print(num_boxes_per_axis) # For each voxel or "box", use the mean of the box to chose which points are in the box. means, _, _ = scipy.stats.binned_statistic_dd( pc[:,:4], [pc[:,0], pc[:,1], pc[:,2], pc[:,3]], statistic="mean", bins=num_boxes_per_axis, ) x_means = means[0,~np.isnan(means[0])].flatten() y_means = means[1,~np.isnan(means[1])].flatten() z_means = means[2,~np.isnan(means[2])].flatten() c_means = means[3,~np.isnan(means[3])].flatten() pc_downsample_adv = np.column_stack([x_means, y_means, z_means, c_means]) print(pc_downsample_adv.shape) 

Розділ 3: Візуалізуйте 3D -візуалізацію

Ми можемо візуалізувати хмари точок за допомогою 3D -діаграми розсіювання точок. Хоча наші хмари точок мають колір, наші перетворення мають різний вплив на колір, тому порівняння їх в одному кольорі забезпечує краще порівняння. Ми бачимо, що вдосконалений метод середнього вокселю створює більш гладку хмару точок, оскільки усереднення має ефект зменшення шуму. У наступному коді ми можемо подивитися на наші хмари точок з двох окремих точок зору, помноживши наші хмари точок на різні матриці обертання.

Коли ви запускаєте Розділ 3 у зошиті, ви також бачите порівняння підходу лінійного кроку з підходом сітчастої коробки, зокрема в тому, як фільтр сіткової коробки має легкий згладжуючий ефект на загальну хмару точок. Це згладжування може бути важливим залежно від рівня шуму вашого набору даних. Зміна функції фільтрації сітки від середньої до середньої або іншої функції усереднення також може покращити чіткість кінцевої хмари точок. Уважно подивіться на задню стінку простих (з фіксованим розміром кроку) та вдосконалених (середнє значення вокселів) прикладів без вибірки, зверніть увагу на ефект згладжування, який метод середнього вокселя порівняв із методом фіксованого розміру кроку.

rot1 = Rotation.from_euler('zyx', [[30,90,60]], degrees=True) R1 = rot1.as_matrix() simple_rot1 = pc_downsample_simple.copy() simple_rot1 = np.matmul(R1, simple_rot1[:,:3].transpose() ).transpose() advanced_rot1 = pc_downsample_adv.copy() advanced_rot1 = np.matmul(R1, advanced_rot1[:,:3].transpose() ).transpose() fig = plt.figure( figsize=(50, 30)) ax = fig.add_subplot(121, projection="3d") ax.set_title("Simple Downsampling 1", fontdict={'fontsize':20}) ax.scatter(simple_rot1[:,0], simple_rot1[:,1], simple_rot1[:,2], c='blue', s=0.05) ax = fig.add_subplot(122, projection="3d") ax.set_title("Voxel Mean Downsampling 1", fontdict={'fontsize':20}) ax.scatter(advanced_rot1[:,0], advanced_rot1[:,1], advanced_rot1[:,2], c='blue', s=0.05) # to look at any of the individual pointclouds or rotate the pointcloud, use the following function plot_pointcloud(pc_downsample_adv, rot = [[30,90,60]], color=True, title="Advanced Downsampling", figsize=(50,30)) 

Розділ 4: Запустіть завдання семантичної сегментації

Запустіть Розділ 4 у блокноті, щоб взяти цю хмару точок і запустити завдання маркування семантичної сегментації хмарної істини за допомогою неї. Ці клітинки генерують необхідний файл маніфесту вхідних даних і форматують хмару точок у представленні, сумісному з Ground Truth.

Щоб дізнатися більше про формат введення Ground Truth, що стосується даних хмари точок, див Вхідні дані та Прийняті формати необроблених 3D -даних.

У цьому розділі ми також виконуємо маркування на порталі працівників. Ми позначаємо підмножину хмари точок, щоб мати деякі анотації для збільшення вибірки. Коли робота буде завершена, ми завантажуємо анотації з Amazon S3 в масив NumPy для нашої подальшої обробки. Нижче наведено скріншот із інструмента семантичної сегментації хмари точок Ground Truth.

Розділ 5: Виконати підбір проб етикеток

Тепер, коли у нас є позначки зі зменшеною вибіркою, ми навчаємо класифікатор K-NN від SKLearn для прогнозування повних міток набору даних, обробляючи наші коментовані точки як навчальні дані та здійснюючи висновок щодо залишків немічених точок у нашій повнорозмірній хмарі точок.

Ви можете налаштувати кількість використовуваних точок, а також метрику відстані та схему зважування, щоб вплинути на те, як виконується висновок мітки. Якщо ви позначите кілька плиток у повнорозмірному наборі даних, ви можете використовувати ці позначені плитки як основу істини для оцінки точності прогнозів K-NN. Потім ви можете використовувати цей показник точності для гіперпараметричного налаштування K-NN або спробувати різні алгоритми виведення, щоб зменшити кількість неправильно класифікованих точок між межами об’єктів, що призведе до найнижчого можливого коефіцієнта помилок у вибірковій моделі. Дивіться наступний код:

# There's a lot of possibility to tune KNN further # 1) Prevent classification of points far away from all other points (random unfiltered ground point) # 2) Perform a non-uniform weighted vote # 3) Tweak number of neighbors knn = KNeighborsClassifier(n_neighbors=3) print(f"Training on {len(pc_downsample_adv)} labeled points") knn.fit(pc_downsample_adv[:,:3], annotations) print(f"Upsampled to {len(pc)} labeled points") annotations_full = knn.predict(pc[:,:3]) 

Розділ 6: Візуалізуйте етикетки з підвищеною вибіркою

Тепер, коли ми виконали підвищення вибірки наших позначених даних, ми можемо візуалізувати фрагмент оригінальної повнорозмірної хмари точок. Ми не відтворюємо всю повнорозмірну хмару точок, тому що це може перешкодити візуалізації нашого засобу візуалізації. Дивіться наступний код:

pc_downsample_annotated = np.column_stack((pc_downsample_adv[:,:3], annotations)) pc_annotated = np.column_stack((pc[:,:3], annotations_full)) labeled_area = pc_downsample_annotated[pc_downsample_annotated[:,3] != 255] min_bounds = np.min(labeled_area, axis=0) max_bounds = np.max(labeled_area, axis=0) min_bounds = [-2, -2, -4.5, -1] max_bounds = [2, 2, -1, 256] def extract_tile(point_cloud, min_bounds, max_bounds): return point_cloud[ (point_cloud[:,0] > min_bounds[0]) & (point_cloud[:,1] > min_bounds[1]) & (point_cloud[:,2] > min_bounds[2]) & (point_cloud[:,0] < max_bounds[0]) & (point_cloud[:,1] < max_bounds[1]) & (point_cloud[:,2] < max_bounds[2]) ] tile_downsample_annotated = extract_tile(pc_downsample_annotated, min_bounds, max_bounds) tile_annotated = extract_tile(pc_annotated, min_bounds, max_bounds) rot1 = Rotation.from_euler('zyx', [[30,90,60]], degrees=True) R1 = rot1.as_matrix() down_rot = tile_downsample_annotated.copy() down_rot = np.matmul(R1, down_rot[:,:3].transpose() ).transpose() down_rot_color = np.matmul(R1, np.tile(tile_downsample_annotated.copy()[:,3],(3,1))).transpose().squeeze() full_rot = tile_annotated.copy() full_rot = np.matmul(R1, full_rot[:,:3].transpose() ).transpose() full_rot_color = np.matmul(R1, np.tile(tile_annotated.copy()[:,3],(3,1))).transpose().squeeze() fig = plt.figure(figsize=(50, 20)) ax = fig.add_subplot(121, projection="3d") ax.set_title("Downsampled Annotations", fontdict={'fontsize':20}) ax.scatter(down_rot[:,0], down_rot[:,1], down_rot[:,2], c=down_rot_color[:,0], s=0.05) ax = fig.add_subplot(122, projection="3d") ax.set_title("Upsampled Annotations", fontdict={'fontsize':20}) ax.scatter(full_rot[:,0], full_rot[:,1], full_rot[:,2], c=full_rot_color[:,0], s=0.05) 

Оскільки наш набір даних щільний, ми можемо візуалізувати мітки з вибіркою всередині плитки, щоб побачити мітки зі зменшеною вибіркою, збільшені до повнорозмірної хмари точок. Хоча вздовж прикордонних областей між об’єктами може існувати невелика кількість неправильних класифікацій, у вас також є набагато більше правильно позначених точок у повнорозмірній хмарі точок, ніж у хмарі початкових точок, що означає, що ваша загальна точність МЛ може покращитися.

Прибирати

Екземпляр блокнота: у вас є два варіанти, якщо ви не хочете, щоб створений екземпляр блокнота працював. Якщо ви хочете зберегти його на потім, ви можете зупинити його, а не видаляти.

  • До СТОП екземпляр блокнота: натисніть Екземпляри ноутбуків посилання на лівій панелі домашньої сторінки консолі SageMaker. Далі натисніть на Стоп посилання у стовпці "Дії" ліворуч від імені вашого екземпляра блокнота. Після зупинки екземпляра блокнота ви можете запустити його знову, натиснувши кнопку Start посилання. Майте на увазі, що якщо ви зупините, а не видалите її, з вас буде стягнуто плату за пов’язану з нею пам’ять.
  • До видаляти екземпляр блокнота: спочатку зупиніть його відповідно до наведеної вище інструкції. Далі натисніть перемикач поруч із екземпляром ноутбука, а потім виберіть видаляти від Дії випадаюче меню.

Висновок

Зменшення вибірки хмар точок може бути життєздатним методом при попередній обробці даних для виявлення об’єктів та маркування відстеження об’єктів. Це може зменшити витрати на маркування, одночасно створюючи високоякісні вихідні етикетки, особливо для задач виявлення та відстеження 3D-об'єктів. У цій публікації ми продемонстрували, як метод зменшення вибірки може вплинути на чіткість хмари точок для працівників, і показав кілька підходів, які мають компроміси на основі рівня шуму набору даних.

Нарешті, ми показали, що ви можете виконувати завдання семантичної сегментації хмари точок 3D на наборах даних, що не мають вибірки, і зіставляти мітки з повнорозмірною хмарою точок за допомогою вибіркового передбачення. Ми досягли цього, навчивши класифікатор робити висновки щодо решти точок повного розміру набору даних, використовуючи вже позначені точки як навчальні дані. Такий підхід дозволяє рентабельно маркувати високо щільні сцени хмари точок, зберігаючи при цьому хорошу загальну якість етикетки.

Перевірте цей блокнот зі своїми власними сценаріями хмарних точок у Ground Truth, спробуйте нові методи зменшення вибірки та навіть спробуйте нові моделі за межами K-NN для остаточного передбачення вибірки, щоб побачити, чи методи зменшення вибірки та підвищення вибірки можуть зменшити ваші витрати на маркування.


Про авторів

 Від'я Сагар Равіпаті є архітектором глибокого навчання в Лабораторія рішень Amazon ML, де він використовує свій величезний досвід у широкомасштабних розподілених системах та свою пристрасть до машинного навчання, щоб допомогти клієнтам AWS у різних галузевих галузях пришвидшити прийняття ШІ та хмарних технологій. Раніше він був інженером машинного навчання у службі підключення в Amazon, який допомагав створювати платформи персоналізації та інтелектуального обслуговування.

Ісаак Привітар є архітектором рішень спеціалістів з машинного навчання та допомагає клієнтам проектувати та створювати рішення для комп’ютерного зору корпоративного рівня на AWS. Ісаак має досвід використання машинного навчання та прискорених обчислень для комп’ютерного зору та аналізу сигналів. Ісаак також у вільний час любить готувати їжу, піші прогулянки та бути в курсі останніх досягнень машинного навчання.

Джеремі Фелтракко - інженер із розробки програмного забезпечення з лабораторії рішень Amazon ML у веб -службах Amazon. Він використовує свій досвід у галузі комп’ютерного зору, робототехніки та машинного навчання, щоб допомогти клієнтам AWS прискорити впровадження ШІ.

Джерело: https://aws.amazon.com/blogs/machine-learning/annotate-dense-point-cloud-data-using-sagemaker-ground-truth/

Часова мітка:

Більше від Блог машинного навчання AWS