O documento descreve um estudo sobre monitoramento de playgrounds públicos por meio de sensoriamento por imagens. A metodologia envolveu capturar imagens com uma câmera em um Raspberry Pi, processá-las localmente para contar e classificar usuários, e armazenar os resultados em arquivos CSV. Dois modelos foram testados e os resultados sugerem que a detecção de objetos é eficaz para mapear o uso dos espaços.
Como o Aprendizado de Máquina pode nos ajudar a liderar as transformações das organizações públicas do tradicional para o Exponencial? (parte 2)
Superamos o desafio de substituir os dados dessas 1.000 simulações por dados reais de uma empresa de TI e inseri-los na Árvore de Decisão. Este modelo tem a capacidade de prever qual é o melhor Modal (TI Bimodal) para realizar determinada atividade: Tradicional ou Exponencial.
Estamos usando o Aprendizado de Máquina desenvolvido no ambiente Notebook Jupyter, na linguagem Python, para auxiliar na decisão de quando usar o tradicional ou exponencial.
O presente artigo tem como objetivo o estudo de modelos de Inteligência Artificial para sistemas de recomendação, case Santander do Kaggle, utilizando algoritmos de Machine Learning e Deep Learning para fazer a recomendação de produtos com base na história dos clientes do banco.
Como o Aprendizado de Máquina pode nos ajudar a liderar as transformações das organizações públicas do tradicional para o Exponencial? (parte 2)
Superamos o desafio de substituir os dados dessas 1.000 simulações por dados reais de uma empresa de TI e inseri-los na Árvore de Decisão. Este modelo tem a capacidade de prever qual é o melhor Modal (TI Bimodal) para realizar determinada atividade: Tradicional ou Exponencial.
Estamos usando o Aprendizado de Máquina desenvolvido no ambiente Notebook Jupyter, na linguagem Python, para auxiliar na decisão de quando usar o tradicional ou exponencial.
O presente artigo tem como objetivo o estudo de modelos de Inteligência Artificial para sistemas de recomendação, case Santander do Kaggle, utilizando algoritmos de Machine Learning e Deep Learning para fazer a recomendação de produtos com base na história dos clientes do banco.
Talk apresentado no Cloud Next '17 Extended Cuiabá por Guilherme Campos. Apresentação introdutória sobre machine learning, os tipo de aprendizado, deep learning e TensorFlow.
Aplicação de redes convolucionais e princípios de visão computacional para a resolução de problema de backoffice. Aqui abordamos um pipeline simplificado para tratar imagens digitalizadas e assim extrair informações de dados não estruturados (utilizando algoritmos de OCR - Optical Character Recognition).
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesTiago Antônio da Silva
O exame experimental de sudorese iodo-amido tem como objetivo auxiliar o diagnóstico de problemas no sistema nervoso, revelando áreas de anidrose e de hipoidrose por meio da reação química entre as secreções aquosas do paciente e um composto de iodo-amido. A reação acontece quando o paciente é induzido a transpirar dentro de uma câmara aquecida por um determinado período de tempo. Na sequência, um profissional da área de saúde avalia de forma visual as regiões de interesse, completando um processo que pode levar tempo e desconforto ao paciente. Dessa forma as soluções computacionais podem contribuir para a melhoria da eficácia e reduzir o tempo total de realização do exame. Neste trabalho realizou-se um estudo comparativo de técnicas de segmentação de imagens 3D de pacientes obtidas pelo dispositivo Microsoft Kinect® após a realização do exame. Foram comparadas as imagens segmentadas via K-Means e uma técnica de Crescimento de Regiões, nos modelos de cor RGB e CIELab, com imagens de referência (golden standard) produzidas por um especialista que definem a melhor segmentação possível para as regiões de anidrose e hipoidróticas. Para determinar a melhor estratégia de segmentação foram elaborados mais de cem cenários de experimentos variando os parâmetros de entrada das técnicas e modelos de cor. Ao término dos experimentos foram calculadas as métricas precisão, revocação, acurácia e medida-F para cada um dos cenários. Assim, concluiu-se que a técnica K-Means (acurácia de 93,18% para anidrose e 86,98% para anidrose e hipoidrose) e Crescimento de Regiões (com acurácia de 92,94% para anidrose e 85,12% para anidrose e hipoidrose), ambas no modelo de cor CIELab, são praticamente equivalentes. Entretanto pode-se perceber uma vantagem na segmentação via Crescimento de Regiões devido sua execução ser feita de forma não supervisionada.
Como o Aprendizado de Máquina pode nos ajudar a liderar as transformações das organizações públicas do tradicional para o Exponencial? (parte 1)
Primeiro adaptamos o Modelo de Responsabilidade Organizacional para ser Exponencial com o NetLogo, depois com alguns algoritmos de Aprendizado de Máquina nós construímos um Modelo de Árvore de Decisão que tem como entrada dados de 1000 simulações.
Estamos usando o Aprendizado de Máquina desenvolvido no ambiente Notebook Jupyter, na linguagem Python, para auxiliar na decisão de quando usar o tradicional ou exponencial.
Neste tutorial QGIS são apresentados e analisados três modelos digitais do terreno (MDT - DEM) obtidos por detecção remota (ASTER GDEM, EU-DEM e SRTM) e um exercício a partir da interpolação por TIN das curvas de nível e dos pontos cotados obtidos a partir da Carta Militar de Portugal à escala 1:25.000.
Bootstrap Evaluation in R - Source CodeMichel Alves
In statistics, bootstrapping is a method for assigning measures of accuracy to sample estimates. This technique allows estimation of the sampling distribution of almost any statistic using only very simple methods. Generally, it falls in the broader class of resampling methods.
QGIS 2.4: Recorte de Raster via Shapefile (Batch Mode)Jorge Santos
Com a evolução das demandas para Processamento de Imagens, precisamos adquirir equipamentos mais modernos e aperfeiçoar as técnicas até aqui conhecidas. Seguir adiante é o curso natural do desenvolvimento tecnológico e esta premissa está presente em todas as áreas do conhecimento.
No exercício anterior sobre recorte de raster na versão 2.0 do programa, nós realizamos longos procedimentos para edição de linha de comando.
Com a evolução do aplicativo SIG, o módulo Processamento está mais robusto e oferece opções mais consistentes. Um dia desses, fiz um ensaio para recorte de arquivo shapefile em lote e o programa correspondeu de forma satisfatória.
Talk apresentado no Cloud Next '17 Extended Cuiabá por Guilherme Campos. Apresentação introdutória sobre machine learning, os tipo de aprendizado, deep learning e TensorFlow.
Aplicação de redes convolucionais e princípios de visão computacional para a resolução de problema de backoffice. Aqui abordamos um pipeline simplificado para tratar imagens digitalizadas e assim extrair informações de dados não estruturados (utilizando algoritmos de OCR - Optical Character Recognition).
Defesa do meu Mestrado: Segmentação de Imagens 3D com Crescimento de RegiõesTiago Antônio da Silva
O exame experimental de sudorese iodo-amido tem como objetivo auxiliar o diagnóstico de problemas no sistema nervoso, revelando áreas de anidrose e de hipoidrose por meio da reação química entre as secreções aquosas do paciente e um composto de iodo-amido. A reação acontece quando o paciente é induzido a transpirar dentro de uma câmara aquecida por um determinado período de tempo. Na sequência, um profissional da área de saúde avalia de forma visual as regiões de interesse, completando um processo que pode levar tempo e desconforto ao paciente. Dessa forma as soluções computacionais podem contribuir para a melhoria da eficácia e reduzir o tempo total de realização do exame. Neste trabalho realizou-se um estudo comparativo de técnicas de segmentação de imagens 3D de pacientes obtidas pelo dispositivo Microsoft Kinect® após a realização do exame. Foram comparadas as imagens segmentadas via K-Means e uma técnica de Crescimento de Regiões, nos modelos de cor RGB e CIELab, com imagens de referência (golden standard) produzidas por um especialista que definem a melhor segmentação possível para as regiões de anidrose e hipoidróticas. Para determinar a melhor estratégia de segmentação foram elaborados mais de cem cenários de experimentos variando os parâmetros de entrada das técnicas e modelos de cor. Ao término dos experimentos foram calculadas as métricas precisão, revocação, acurácia e medida-F para cada um dos cenários. Assim, concluiu-se que a técnica K-Means (acurácia de 93,18% para anidrose e 86,98% para anidrose e hipoidrose) e Crescimento de Regiões (com acurácia de 92,94% para anidrose e 85,12% para anidrose e hipoidrose), ambas no modelo de cor CIELab, são praticamente equivalentes. Entretanto pode-se perceber uma vantagem na segmentação via Crescimento de Regiões devido sua execução ser feita de forma não supervisionada.
Como o Aprendizado de Máquina pode nos ajudar a liderar as transformações das organizações públicas do tradicional para o Exponencial? (parte 1)
Primeiro adaptamos o Modelo de Responsabilidade Organizacional para ser Exponencial com o NetLogo, depois com alguns algoritmos de Aprendizado de Máquina nós construímos um Modelo de Árvore de Decisão que tem como entrada dados de 1000 simulações.
Estamos usando o Aprendizado de Máquina desenvolvido no ambiente Notebook Jupyter, na linguagem Python, para auxiliar na decisão de quando usar o tradicional ou exponencial.
Neste tutorial QGIS são apresentados e analisados três modelos digitais do terreno (MDT - DEM) obtidos por detecção remota (ASTER GDEM, EU-DEM e SRTM) e um exercício a partir da interpolação por TIN das curvas de nível e dos pontos cotados obtidos a partir da Carta Militar de Portugal à escala 1:25.000.
Bootstrap Evaluation in R - Source CodeMichel Alves
In statistics, bootstrapping is a method for assigning measures of accuracy to sample estimates. This technique allows estimation of the sampling distribution of almost any statistic using only very simple methods. Generally, it falls in the broader class of resampling methods.
QGIS 2.4: Recorte de Raster via Shapefile (Batch Mode)Jorge Santos
Com a evolução das demandas para Processamento de Imagens, precisamos adquirir equipamentos mais modernos e aperfeiçoar as técnicas até aqui conhecidas. Seguir adiante é o curso natural do desenvolvimento tecnológico e esta premissa está presente em todas as áreas do conhecimento.
No exercício anterior sobre recorte de raster na versão 2.0 do programa, nós realizamos longos procedimentos para edição de linha de comando.
Com a evolução do aplicativo SIG, o módulo Processamento está mais robusto e oferece opções mais consistentes. Um dia desses, fiz um ensaio para recorte de arquivo shapefile em lote e o programa correspondeu de forma satisfatória.
ITA - CE-235 - CE-230 - Apresentação Final - SETRAIF - DCN
Comp.e Progr.Aplicada ao Processo de Projeto, estudo uso Playground.pdf
1. Universidade Federal de Santa Catarina - UFSC
Computação e Programação Aplicada ao Processo de Projeto
Professor: Carlos Eduardo Verzola Vaz
Aluno: Jaceguay Zukoski
Sensoriamento por imagens na análise da
utilização de equipamentos urbanos:
Playgrounds em praças públicas
3. Levantar dados sobre a utilização de equipamentos urbanos, especificamente playgrounds em praças
públicas.
O tratamento dos dados armazenados baseia-se na correlação da densidade de usuários ao longo do
tempo, utilizando-se de técnicas de processamento de imagem.
Tanto a captura quanto o processamento devem ocorrer in-loco, deste modo lidando com restrições sobre
o armazenamento das imagens ou banda para transmissão de dados.
Objetivo:
5. As imagens coletadas são processadas diretamente pela
unidade, o resultado é gravado em um mapa de pontos
como um arquivo .csv contendo as coordenadas do ponto,
seu rótulo e tempo em segundos da sua captura:
Metodologia:
Equipamentos:
- Raspberry Pie Model 3B
- Módulo câmera Ov5647 5mp 75° 3.6mm 1080p
- Cartão SD 32Gb
O processamento prevê a visualização da densidade do
uso do espaço através da soma destes pontos.
6. Metodologia:
Etapas:
- Pré-processamento: remoção de ruído, ajuste de
contraste e normalização;
- Realce: Filtros a fim de destacar as características
básicas (formas, texturas e iluminação);
- Segmentação: Separação em partes
distintas(objetos) e fundo da imagem;
- Classificação: Aplicação de um modelo treinado
por aprendizado de máquina para atribuição do
significado de cada objeto (rótulo).
segmentação de imagem e seleção de objetos. (fonte: https://blogs.nvidia.com)
7. Aplicação de operações primitivas à imagens (ruído, contraste, nitidez, aplicação de filtros…).
São tratados os valores dos pixels e aplicados métodos estatísticos para sua classificação:
transformação do espaço de cores da combinação RGB(vermelho, verde e azul) em HSV(tom, saturação e valor)
cv2.cvtColor(img, cv2.COLOR_RGB2HSV)
Metodologia - exemplo tratamento de baixo nível :
8. Definição de um intervalo que representa melhor a área de vegetação, criação de uma máscara, o mesmo foi feito com a areia:
lower_veg = np.array([0, 40, 30])
upper_veg = np.array([170, 255, 90])
mask_veg = cv2.inRange(hsv, lower_veg, upper_veg)
Metodologia - exemplo tratamento de baixo nível :
9. # ler e transformar imagem
image = cv2.imread('DJI_0128.JPG')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# aplicar modelo de segmentação
sam = sam_model_registry["vit_h"](
checkpoint="sam_vit_h_4b8939.pth")
mask_generator = SamAutomaticMaskGenerator(sam)
masks = mask_generator.generate(image)
# selecionar máscaras com base na área
masks_filtradas = [ann for ann in masks if (ann['area'] > 500) & (ann['area'] < 10000)]
# classificar os objetos encontrados
model = YOLO("yolov8m.pt")
results = model(frame, device="mps")
result = results[0]
bboxes = np.array(result.boxes.xyxy.cpu(), dtype="int")
classes = np.array(result.boxes.cls.cpu(), dtype="int")
Metodologia - exemplo tratamento de alto nível :
12. Estudo 1:
Diferença entre pixels, duas capturas a cada segundo
def comparar_imgs(img1, img2):
# imagens para binário
img1 = cv2.imread(img1)
img2 = cv2.imread(img2)
gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
(thresh1, binary1) = cv2.threshold(gray1, 127, 255, cv2.THRESH_BINARY)
(thresh2, binary2) = cv2.threshold(gray2, 127, 255, cv2.THRESH_BINARY)
# diferença entre as imagens
diff = cv2.absdiff(binary1, binary2)
# segmentar o resultado em partes com áreas agrupadas
kernel = np.ones((5, 5), np.uint8)
diff = cv2.morphologyEx(diff, cv2.MORPH_OPEN, kernel)
# encontar os contornos
contours, hierarchy = cv2.findContours(diff, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# uma caixa delimitadora para cada área
boxes = []
for c in contours:
(x, y, w, h) = cv2.boundingRect(c)
boxes.append((x, y, x+w, y+h))
# resultado da diferença,em vermelho as caixas delimitadoras com área maior que 200 pixels
fig, ax = plt.subplots(1, 2, figsize=(20, 8))
ax[0].imshow(diff, cmap='gray')
ax[1].imshow(cv2.drawContours(cv2.cvtColor(diff, cv2.COLOR_GRAY2RGB), contours, -1, (0, 255, 0), 2))
for box in boxes:
if (box[2]-box[0])*(box[3]-box[1]) > 200:
ax[1].add_patch(plt.Rectangle((box[0], box[1]), box[2]-box[0], box[3]-box[1], fill=False, color='red'))
plt.show()
13. resultado da diferença entre as duas imagens convertidas em imagens monocromáticas, as caixas
delimitadoras com área maior que 200 pixels demarcadas em vermelho:
Estudo 1:
Diferença entre pixels, duas capturas a cada segundo
15. Estudo 2:
Modelo de classificação de objetos if quadro % 60 == 0:
results = model(frame, device="mps")
result = results[0]
bboxes = np.array(result.boxes.xyxy.cpu(), dtype="int")
classes = np.array(result.boxes.cls.cpu(), dtype="int")
# columnas: coordenada x, y do centróide, classe, quadro e segundo
for cls, bbox in zip(classes, bboxes):
(x, y, x2, y2) = bbox
x_centroide = (x + x2) / 2
y_centroide = (y + y2) / 2
df = pd.DataFrame(
{
"x_centroide": [str(int(x_centroide))],
"y_centroide": [str(int(y_centroide))],
"classe": [str(int(cls))],
"quadro": [str(int(quadro))],
"segundo": [str(int(quadro / 60))],
}
)
df.to_csv(f"centroids/{str(int(quadro))}.csv",
header=False, mode="a", index=False)
You only look once (YOLO)
é um método de detecção de objetos em tempo real que é baseado em
uma única rede neural convolucional (CNN). Esta é responsável em dividir
e classificar a imagem.
A imagem é dividida em regiões iguais que são avaliadas por sua
probabilidade em serem parte de uma classe, incluindo a probabilidade da
posição da caixa delimitadora da classe com base na célula.
fonte: https://pjreddie.com/darknet/yolo/
18. Estudo 2:
Soma dos pontos detectados ao longo de 45 minutos classe pessoas
19. Conclusão:
O modelo de baixo nível, possui como vantagens o baixo requisito de
processamento e principalmente a capacidade de funcionar em imagens de
baixa resolução. Já o modelo de alto nível pode capturar o uso do espaço de
modo mais abrangente.
A partir dos resultados obtidos, é possível concluir que a metodologia utilizada
com o modelo de detecção de objetos é eficaz para coletar e tratar dados sobre
o uso dos playgrounds em praças públicas.
É contudo necessário acrescentar uma etapa de contextualização para cada
cenário, de acordo com o local de monitoramento. Para que efetivamente
possam ser comparadas às áreas de lazer infantil, estares e circulação.