Wilm-52
Aktives Mitglied
In diesem Thread wurde angedacht, ob man Spektrogramme mit künstlicher Intelligenz (KI, AI) detektieren kann. Das ist eine interessante Sache, die sich aber nicht mal so einfach lösen lässt. Außerdem gibt es noch weitere Aufgaben zu programmieren, zB das Zählen der vorbei wandernden Signale.
Vielleicht kommt man für den Anfang ohne KI aus. Im Grunde sind es immer sehr ähnliche Gebilde. Sie sind prinzipiell einfarbig und lassen sich eventuell mit normalen Algorithmen von Störungen unterscheiden.
Für den Anfang habe ich nun etwas in Python3 und Opencv programmiert. Eine Einführung zu den beiden Themen gibt es im Link. Daraus habe ich auch Teile des Codes entnommen, aber natürlich auch aus Python und Opencv Dokumentationen.
blog.codecentric.de
Zunächst wird das Spektrogramm bzw werden die Spektrogramme in Schwarz-Weiß umgewandelt.
Wichtig ist zu wissen, dass die Farberkennung im HSV Farbraum erfolgt. Das ist eine Skala von 0 bis 180°, manchmal findet man auch 360°. Hier wurden 10° - 35° eingestellt, was orange-gelb entspricht. (Siehe zB Wikipedia HSV Farbraum.)
Im 2. Bild erkennt man auch schon das Hauptproblem: einmal werden aus einem Signal zwei, einmal verschmelzen zwei Signale. Das wird KI bestimmt besser können.
Vielleicht finden sich hier ja einige Leute, die daran mit oder weiter basteln möchten.
Viele Grüße,
Wilhelm
Vielleicht kommt man für den Anfang ohne KI aus. Im Grunde sind es immer sehr ähnliche Gebilde. Sie sind prinzipiell einfarbig und lassen sich eventuell mit normalen Algorithmen von Störungen unterscheiden.
Für den Anfang habe ich nun etwas in Python3 und Opencv programmiert. Eine Einführung zu den beiden Themen gibt es im Link. Daraus habe ich auch Teile des Codes entnommen, aber natürlich auch aus Python und Opencv Dokumentationen.

Einführung in Computer Vision mit OpenCV und Python
Computer Vision ist eine spannende Disziplin in der Informatik. Die Forschung beschäftigt sich bereits seit Jahrzehnten mit dem Thema, aber erst durch aktuelle Fortschritte in den Bereichen Big Data und künstliche Intelligenz ergeben sich beeindruckende neue Möglichkeiten. Mittels...
Wichtig ist zu wissen, dass die Farberkennung im HSV Farbraum erfolgt. Das ist eine Skala von 0 bis 180°, manchmal findet man auch 360°. Hier wurden 10° - 35° eingestellt, was orange-gelb entspricht. (Siehe zB Wikipedia HSV Farbraum.)
Im 2. Bild erkennt man auch schon das Hauptproblem: einmal werden aus einem Signal zwei, einmal verschmelzen zwei Signale. Das wird KI bestimmt besser können.
Vielleicht finden sich hier ja einige Leute, die daran mit oder weiter basteln möchten.
Viele Grüße,
Wilhelm
Code:
import numpy as np
import cv2
import time
def Mdetect():
cap = cv2.VideoCapture(0) # Jetson Nano /dev/video0
cap.set(3,1280) # HD
cap.set(4,720)
counter = 0
if cap.isOpened():
cv2.namedWindow("willi", cv2.WINDOW_AUTOSIZE)
while cv2.getWindowProperty("willi", 0) >= 0:
ret, streamin = cap.read() # Einlesen der Frames in streamin, ret ist ein dummy
streamout = streamin # das sind Arrays
hsv = cv2.cvtColor(streamin, cv2.COLOR_BGR2HSV) # RGB zu HSV
maske = cv2.inRange(hsv, (10,100,100), (35,255,255)) # Farbauswahl, siehe Text
contours, hierarchy = cv2.findContours(maske, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(streamout, contours, -1, (10,255,10), 2) # alle mit Farbrahmen versehen
cv2.imshow("Original + Kontur", streamout)
cv2.imshow("SW-Maske", maske)
keyCode = cv2.waitKey(30) & 0xFF
counter += 1
print("Sekunde: ", time.strftime("%S"),"Count:",counter)
if keyCode == 27: # Stop the program on the ESC key
break
cap.release()
cv2.destroyAllWindows()
else:
print("Unable to open camera")
if __name__ == "__main__":
Mdetect()