Crea tu propio conjunto de datos alienígenas


La segmentación de personas que utilizan redes neuronales no sorprenderá a nadie. Hay muchas aplicaciones, como Sticky Ai , Teleport Live , Instagram , que le permiten realizar una tarea tan difícil en un teléfono móvil en tiempo real.


Entonces, supongamos que el planeta Tierra se enfrenta a civilizaciones extraterrestres. Y de los extraterrestres del sistema estelar de Alpha Centauri, se recibe una solicitud para desarrollar un nuevo producto. Realmente les gustó la aplicación Sticky Ai , que le permite cortar personas y hacer pegatinas, por lo que quieren portar la aplicación a su mercado intergaláctico.


Desafortunadamente, nuestra red neuronal, que se usa en la aplicación de segmentación, está entrenada solo en imágenes de la raza humana, por lo tanto, funciona mal en los extraterrestres. Hay una necesidad urgente de expandir nuestro conjunto de datos por extraterrestres.


Después de pedirle a los alienígenas varios miles de sus imágenes, procedemos al marcado.


Desafío:
Hay imágenes extraterrestres, para cada imagen debe crear una máscara en blanco y negro en la que el extraterrestre se resaltará en blanco y el fondo en negro.



Solución:
En primer lugar, debe hacer un ToR para los trabajadores independientes que diseñarán las imágenes. Como necesitamos una calidad muy alta, marcaremos las imágenes en Photoshop.


Spoiler

Si no necesitamos muy buena calidad, o el objeto seleccionado es muy simple, entonces dicho marcado se puede hacer usando vértices de polígono. Este tipo de marcado está disponible en Amazon Mechanical Turk y Yandex.Toloke , donde la mano de obra es muy barata.


Es posible componer un TOR en forma de documento PDF de 10 páginas, pero:


  1. Los freelancers generalmente no leen TK, sino que se desplazan.
  2. En el documento, es difícil describir en detalle el algoritmo de cómo marcar de manera correcta y rápida.
  3. Lleva mucho tiempo compilar el documento en sí.

Por lo tanto, ahora hemos abandonado completamente los conocimientos tradicionales en forma de documento PDF, y proporcionamos la tarea en
tipo de video de entrenamiento. Después de tal innovación:


  • La productividad de los freelancers se ha duplicado (ya que el video muestra la forma más rápida y óptima de marcar).
  • Las preguntas formuladas por los trabajadores independientes se redujeron en 3 veces (ya que el video muestra cada paso).
  • Resultó reducir el costo de recargo en 2 veces (ya que el precio de una hora de trabajo no ha cambiado, pero los trabajadores independientes aumentan el doble de rápido).

Se debe prestar especial atención al método de marcado en Photoshop. Photoshop es un programa muy flexible en el que el marcado se puede hacer de diferentes maneras. Por lo tanto, es aconsejable determinar de antemano qué calidad de marcado necesita, estudiar diferentes herramientas de selección, compararlas entre sí y elegir la con la que el procesamiento de imágenes se realiza más rápidamente.


Un ejemplo:
Hay dos formas de resaltar:
El Método A toma 5 minutos por imagen.
El Método B toma 10 minutos por imagen.


Con el método A, el profesional independiente marca 12 imágenes por hora, por lo que el precio por imagen será 150/12 = 12.5 rublos.
Con el método B, el profesional independiente marca 6 imágenes por hora, por lo que el precio por imagen será de 150/6 = 25 rublos.


Entonces, encontramos la mejor manera de resaltar y grabar la instrucción de video, ¿qué sigue?



Queda por encontrar autónomos. Hay muchos intercambios independientes como Fl.ru , Weblancer , Freelans.ru .
Pero recientemente, hemos estado utilizando el servicio independiente WORK-ZILLA porque:


  1. Hay una mano de obra bastante barata.
  2. Muchos artistas.
  3. Interfaz fácil de usar para crear tareas.

Para crear una tarea:
Nos registramos, reponemos el saldo, hacemos clic en "Enviar una tarea", seleccionamos "Diseño" -> "Procesamiento de fotos".



Complete el título y la descripción, determine el tiempo para completar la tarea. Después de procesar varios extraterrestres, noté que toma 4 minutos en promedio por imagen. Es decir Sale 15 imágenes por hora, así que establecemos el precio de una imagen 150/15 = 10 rublos.



Inmediatamente después de la publicación de la tarea, los artistas comienzan a ofrecer sus servicios.



Seleccionamos la más bella por la imagen de perfil experimentada por las reseñas y afirmamos como intérprete, emitir imágenes. Como puede ver, nos llevó menos de 15 minutos encontrar un profesional independiente.



A la mañana siguiente, el artista envió un trabajo.




¿Cómo verificarlo ahora?


Por supuesto, puede abrir cada imagen en Photoshop y ver qué tan bien está resaltado todo, pero ¿qué pasa si 20 personas trabajan para usted al mismo tiempo y todos envían 40 imágenes al día?


Automatizar! Para facilitar la verificación, implementé el siguiente script en python:


import cv2 import numpy as np import os import shutil from __future__ import print_function from tqdm import tqdm_notebook as tqdm #,       def generate_checkerboard(shape, size): res = np.ones(shape, dtype=np.float32) for i in range(0, shape[0] // size + 1): for j in range(0, shape[1] // size + 1): if (i + j) % 2 == 0: res[i * size:i * size + size, j * size:j * size + size] = 0.7 return np.stack([res] * 3, axis=2) path = '01_ ̆_13' files_im = filter(lambda x: x[-4:] == '.jpg', os.listdir(path + '/images')) files_masks = filter(lambda x: x[-4:] == '.png', os.listdir(path + '/masks')) print('- : %s' % len(files_im)) print('- : %s' % len(files_masks)) if len(files_im) != len(files_masks): print('-     ') raise Exception('bad count') #  res,      os.makedirs(path + '/res') for idd in tqdm(map(lambda x: x[:-4], files_im)): print(idd) mask = cv2.imread(path + '/masks/' + idd + ".png") / 255. im = cv2.imread(path + '/images/' + idd + ".jpg") checkerboard = generate_checkerboard(im.shape[:2], 40) * 255 cv2.imwrite(path + '/res/' + idd + ".jpg", np.concatenate([im, im * (1 - mask), im * mask + (1 - mask) * checkerboard],axis=1)) 

El guión toma la imagen original, la máscara, y hace un collage de ellos, que consiste en la imagen original, recorta el fondo y recorta extraterrestre.


Ejecute el script y obtenga dichos collages:











Después de revisar las imágenes, notamos que el artista no seleccionó una imagen muy bien.



Por favor corrija la imagen.



Después de que el profesional independiente haya corregido todos nuestros comentarios, confirmamos el trabajo y presentamos un agradecimiento al profesional independiente.



El resultado:
Suponga que necesita 2.000 imágenes alienígenas para entrenar una red neuronal.
Luego, para recopilar dicho conjunto de datos, deberá gastar solo 2000 x 10 = 20,000 rublos, y si tiene en cuenta que, en promedio, un profesional independiente procesa 40 imágenes por día y 10 personas trabajan en el marcado, entonces crear un conjunto de datos tomará 2000 / (10 x 40) = 5 días.


PS
Por supuesto, aún no hemos encontrado extraterrestres, ninguno del equipo de Prisma AI va a segmentar extraterrestres, pero con este ejemplo quería mostrarle cuán simple y rentable puede crear su propio conjunto de datos para cualquier tarea, ya sea la detección de peatones para un vehículo no tripulado o determinación de bosques en imágenes satelitales.

Source: https://habr.com/ru/post/es422999/


All Articles