Suche Objekterkennung mit Aussage über Koordinaten
Hallo,
ich bin auf der Suche nach einem ki-Modell für meine rpa (Automatisierungsanwendung).
Jetzt ist es so dass z.b. llava oder phi Vision ein Bild super beschreiben können, aber nicht in der Lage sind Koordinaten auszugeben - also exakte Pixelkoordinaten oder Bereiche.
Yolo hingegen kann nicht mit Sprache umgehen. Ich suche nach einem Weg, bei dem ich z.B. sagen kann "Gib in das Benutzername-Feld abc ein". Die Bilderkennung müsste dann die Koordinaten eines Feldes, dass wir eine eingabe für Benutzerdaten aussieht die Koordinaten ermitteln, bei denen dann weitere Aktionen wie Eingabe erfolgen können.
Kennt ihr ein Modell das auf Consumer pcs (bevorzugt opencv - also onnx) lauffähig ist und etwas in der Art und Weise erreichen kann? Bzw. Habt ihr eine ganz andere Idee wie man soetwas lösen könnte?
Vielen Dank schonmal!
ich bin auf der Suche nach einem ki-Modell für meine rpa (Automatisierungsanwendung).
Jetzt ist es so dass z.b. llava oder phi Vision ein Bild super beschreiben können, aber nicht in der Lage sind Koordinaten auszugeben - also exakte Pixelkoordinaten oder Bereiche.
Yolo hingegen kann nicht mit Sprache umgehen. Ich suche nach einem Weg, bei dem ich z.B. sagen kann "Gib in das Benutzername-Feld abc ein". Die Bilderkennung müsste dann die Koordinaten eines Feldes, dass wir eine eingabe für Benutzerdaten aussieht die Koordinaten ermitteln, bei denen dann weitere Aktionen wie Eingabe erfolgen können.
Kennt ihr ein Modell das auf Consumer pcs (bevorzugt opencv - also onnx) lauffähig ist und etwas in der Art und Weise erreichen kann? Bzw. Habt ihr eine ganz andere Idee wie man soetwas lösen könnte?
Vielen Dank schonmal!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 668732
Url: https://administrator.de/contentid/668732
Ausgedruckt am: 23.11.2024 um 09:11 Uhr
14 Kommentare
Neuester Kommentar
Hi.
Ich versthe den Sinn nicht, weil - egal pb Webseite, PDF-Dokument oder Programm ...
In der Regel sind die Eingabefelder im Code benannt, da sie ja auf die ein oder andere Weise weiterverarbeitet werden müssen ...
Vielleicht etwas genauer den Anwendungszweck beschreiben, warum genannte Methoden nicht greifen ... 🤔
Ich versthe den Sinn nicht, weil - egal pb Webseite, PDF-Dokument oder Programm ...
In der Regel sind die Eingabefelder im Code benannt, da sie ja auf die ein oder andere Weise weiterverarbeitet werden müssen ...
Vielleicht etwas genauer den Anwendungszweck beschreiben, warum genannte Methoden nicht greifen ... 🤔
Hallo,
leider auch keinen heßen Tip.
https://www.macrocreator.com/screenshots/
Ähnlicher Ansatz. Quellcode ist vorhanden. Hier wird aber OCR ausgewertet oder mit Bild geprüft, ob ein Fenster vorhanden ist Wenn es immer die gleichen Größe ist könnte man es darüber probieren.
Ist nur alles AHK und weit von AI entfernt.
Wenn man fixe Bilder vergleicht müsste man dann bei der Aktion das als Ankerpunkt nehmen und von da aus weitergehen. Auch nicht gerade schön.
Wie viele GUI hast du denn? Immer die gleiche Auflösung? Wenn nicht dynamisch so könnte man es über einen statischen Abgleich probieren.
Bei AHK verwendet man meist ganz einfache Logik. Wenn ich ein Fenster aktivieren bin ich schon an Position X. Immer. Drücke ich TAB oder Shift+TAB wandere ich auf und nieder, von links nach rechts.
Bei Bekannten Masken noch aktzeptabel. Da reicht es ja wenn der "Cursor" einen festen Pfad folgt.
mstsc.exe:
- Startet immer eingeklappt bei Computername
- Alt + O öffnet Anmeldedialog
- TAB führt zum Bentzernamen
- ENTER im beliebigen Feld startet Verbindung.
Automation muss ja auch reliable sein. Das erreicht man aber ohne KI durch geeignete Maßnahmen. Focussierung, Reihenfolge einhalten, fertig.
Problem ist meist doch noch, dass es teils keine modalen Masken sind. Irgendwas "spricht" mit rein. Overlay durch anders Fenster, Verschiebungen, etc.
Die Probleme hat man bei Pixel Auswertung doch auch. Die TAB Reihenfolge steht aber meist fest. Da man ja auch GUI so programmiert dass Feld 1, 2, 3, 4 der Reihe nach angesteuert werden.
AI ist schön und gut. Aber wäre es nicht sinnvoller zu schauen ob ein Großteil via Keystrokes erreicht werden kann? Image Auswertungen max. als Zwischenergebis, ob man noch richtig "steht".
https://www.automa.site/
Automa nutze ich für Google Chrome. Auch HTTP Request lassen sich auswerten.
Je nachdem was du vorhast wäre eine Kombination ggf. sinnvoller.
Hab es mal auf die Spitze getrieben und mit Automa Ricoh Drucker GUI umgestellt. Ist ja wie eine Handy Oberfläche. Icons in Mülleimer verschieben oder neue aus dem Store holen.
Gerade wenn es um Automatisierung geht würd ich versuchen das Interface zu erreichen, dass der Programmierer mal vorgesehen hat. Oftmals auch immer noch die gute, alte Tastatur. Cursor Tasten und Tab sowie Shortcuts.
Sonst müsste die AI so trainiert sein, dass sie auch mit versch. Masken, Aufösungen, Sprachen etc. zurecht kommt.
Sind es immer wiederkehrende Vorgänge würde ich etwa tiefer Stapeln. Image Vergleich oder HTTP Request als Ergenbis-Prüfung sind völlig ok. Die komplette Steuerung wäre nur durch einen massiven AI Einsatz zu schaffen. Musst du das, oder reichen ein paar Pattern die auf die 5 Maschinenversionen mit untersch. Eingabemasken zugeschnitten sind nicht auch aus?
Ein Bsp. oben wäre auch ohen AI mit folgenden Denkbar:
- Automa mit Logik versehen
- Pulover Macro mit Bildschirm abgleich.
Schleifen, Wait-Unti etc. lassen sich mit beiden Systemen so schon ausstatten.
Pulover Macro führt auch Befehle aus. Du kannst also th. sogar Bild machen und an eine AI zur 2. Prüfung schicken.
Normal reihcen aber Ankerpunkte: Login/ Logout? Was steht dort? OCR Vergleich oder Image Suche wie mit Pulover Makro.
Schau dir mal die beiden an und nimm mal auf wie die Arbeiten! Ggf. kommst du mit weniger AI und externer Datenverarbeitung aus!
https://www.automa.site/
https://www.macrocreator.com/screenshots/
leider auch keinen heßen Tip.
https://www.macrocreator.com/screenshots/
Ähnlicher Ansatz. Quellcode ist vorhanden. Hier wird aber OCR ausgewertet oder mit Bild geprüft, ob ein Fenster vorhanden ist Wenn es immer die gleichen Größe ist könnte man es darüber probieren.
Ist nur alles AHK und weit von AI entfernt.
Wenn man fixe Bilder vergleicht müsste man dann bei der Aktion das als Ankerpunkt nehmen und von da aus weitergehen. Auch nicht gerade schön.
Wie viele GUI hast du denn? Immer die gleiche Auflösung? Wenn nicht dynamisch so könnte man es über einen statischen Abgleich probieren.
Bei AHK verwendet man meist ganz einfache Logik. Wenn ich ein Fenster aktivieren bin ich schon an Position X. Immer. Drücke ich TAB oder Shift+TAB wandere ich auf und nieder, von links nach rechts.
Bei Bekannten Masken noch aktzeptabel. Da reicht es ja wenn der "Cursor" einen festen Pfad folgt.
mstsc.exe:
- Startet immer eingeklappt bei Computername
- Alt + O öffnet Anmeldedialog
- TAB führt zum Bentzernamen
- ENTER im beliebigen Feld startet Verbindung.
Automation muss ja auch reliable sein. Das erreicht man aber ohne KI durch geeignete Maßnahmen. Focussierung, Reihenfolge einhalten, fertig.
Problem ist meist doch noch, dass es teils keine modalen Masken sind. Irgendwas "spricht" mit rein. Overlay durch anders Fenster, Verschiebungen, etc.
Die Probleme hat man bei Pixel Auswertung doch auch. Die TAB Reihenfolge steht aber meist fest. Da man ja auch GUI so programmiert dass Feld 1, 2, 3, 4 der Reihe nach angesteuert werden.
AI ist schön und gut. Aber wäre es nicht sinnvoller zu schauen ob ein Großteil via Keystrokes erreicht werden kann? Image Auswertungen max. als Zwischenergebis, ob man noch richtig "steht".
https://www.automa.site/
Automa nutze ich für Google Chrome. Auch HTTP Request lassen sich auswerten.
Je nachdem was du vorhast wäre eine Kombination ggf. sinnvoller.
Hab es mal auf die Spitze getrieben und mit Automa Ricoh Drucker GUI umgestellt. Ist ja wie eine Handy Oberfläche. Icons in Mülleimer verschieben oder neue aus dem Store holen.
Gerade wenn es um Automatisierung geht würd ich versuchen das Interface zu erreichen, dass der Programmierer mal vorgesehen hat. Oftmals auch immer noch die gute, alte Tastatur. Cursor Tasten und Tab sowie Shortcuts.
Sonst müsste die AI so trainiert sein, dass sie auch mit versch. Masken, Aufösungen, Sprachen etc. zurecht kommt.
Sind es immer wiederkehrende Vorgänge würde ich etwa tiefer Stapeln. Image Vergleich oder HTTP Request als Ergenbis-Prüfung sind völlig ok. Die komplette Steuerung wäre nur durch einen massiven AI Einsatz zu schaffen. Musst du das, oder reichen ein paar Pattern die auf die 5 Maschinenversionen mit untersch. Eingabemasken zugeschnitten sind nicht auch aus?
Ein Bsp. oben wäre auch ohen AI mit folgenden Denkbar:
- Automa mit Logik versehen
- Pulover Macro mit Bildschirm abgleich.
Schleifen, Wait-Unti etc. lassen sich mit beiden Systemen so schon ausstatten.
Pulover Macro führt auch Befehle aus. Du kannst also th. sogar Bild machen und an eine AI zur 2. Prüfung schicken.
Normal reihcen aber Ankerpunkte: Login/ Logout? Was steht dort? OCR Vergleich oder Image Suche wie mit Pulover Makro.
Schau dir mal die beiden an und nimm mal auf wie die Arbeiten! Ggf. kommst du mit weniger AI und externer Datenverarbeitung aus!
https://www.automa.site/
https://www.macrocreator.com/screenshots/
PS:
Wenn du was sendest, so kannst du es auch direkt senden!
Ohne GUI mit API Abfrage oder normalen Webrequest. Statt Felder auszuwerten schick die Infos als z.B. JSON kondierten Payload mit hin.
Nutze sowas bei unify Telefonen. Mitunter haben Webseiten ein Secret. Versteckter String der mit übergeben werden muss. ABER auch den kann man auslesen und via Variable einen POST mitgeben!
GET und POST kennst du ja? Wenn es um Webseiten geht wäre der erste Ansatz zur Automation doch der bestehende Prozesse OHNE GUI abzubilden.
Das geht mitunter sehr viel einfacher und schneller. Es reicht im Firefox oder Chrome mit F12 sich mal die Felder anzuschauen. Das Secret verbirgt sich mitunter als hidden Text schon in den Masken.
Für Webseiten ist immer die erste Device möglichst alles via Invoke-Webrequest (oder curl) abzubilden! Ladezeiten, Timeout, Ergebnis, Variablen.... Alles super schnell gemacht und weil wir uns ans System halten auch sehr, sehr zuverlässig!
Wenn du was sendest, so kannst du es auch direkt senden!
Ohne GUI mit API Abfrage oder normalen Webrequest. Statt Felder auszuwerten schick die Infos als z.B. JSON kondierten Payload mit hin.
Nutze sowas bei unify Telefonen. Mitunter haben Webseiten ein Secret. Versteckter String der mit übergeben werden muss. ABER auch den kann man auslesen und via Variable einen POST mitgeben!
GET und POST kennst du ja? Wenn es um Webseiten geht wäre der erste Ansatz zur Automation doch der bestehende Prozesse OHNE GUI abzubilden.
Das geht mitunter sehr viel einfacher und schneller. Es reicht im Firefox oder Chrome mit F12 sich mal die Felder anzuschauen. Das Secret verbirgt sich mitunter als hidden Text schon in den Masken.
Für Webseiten ist immer die erste Device möglichst alles via Invoke-Webrequest (oder curl) abzubilden! Ladezeiten, Timeout, Ergebnis, Variablen.... Alles super schnell gemacht und weil wir uns ans System halten auch sehr, sehr zuverlässig!
Nicht ganz. Kommt drauf an. Viele haben ein Secret drin und der Token muss dann auch mitgegeben werden.
Im einfaschsten Fall kann ein GET den für die Session besorgen und anschließend kann man den für Login verwenden. Alles andere läuft normal in PowerShell z.B. unter der Sitzung dann ab.
2FA mit Handy Nummer etc. ist klar viel schwieriger. Drucker oder Telefone haben meist noch einfache GUI. Secret verbirgt sich als hidden in den Masken: unify Telefone z.B.
Einmal drin geht es "normal" weiter: Reboot ausführen, Uhrzeit setzen, etc. etc.
Man muss nur wissen wonach man suchen muss und den Request "nachbauen". Dann hat man schon gewonnen.
Https befehl in Batch einbauen
Hier mal page_ident ausgelesen und dann benutzt.
Function RestartPhone ($PhoneIP) {
# Phone Anmeldung
[string]$Phoneuser = "admin"
[string]$Phonepwd = "123456"
[string]$Phoneurl = "https://$PhoneIP/page.cmd"
[string]$LoginPOST = "page_submit=WEBMp_Admin_Login&lang=en&page_ident=abcdefij12345678&AdminPassword=123456"
[string]$RestartPhone = "lang=en&user=Admin&menu=00000100000000000001_99&highlighted=WEBM_Admin_Restart&page=WEBM_Admin_Restart"
[string]$RestartPhoneSet1 = "page_submit=WEBM_Admin_Restart&lang=en&page_ident="
$LoginXML = Invoke-WebRequest $Phoneurl -Method Post -Body $LoginPOST -SessionVariable session -TimeoutSec 2
if ($LoginXML) {
$LoginXML = Invoke-WebRequest $Phoneurl -Method Post -Body $($RestartPhone) -WebSession $session
$LoginXML = Invoke-WebRequest $Phoneurl -Method Post -Body "$RestartPhoneSet1$(($LoginXML.Forms).Fields['page_ident'])" -WebSession $session
}
}
Wir machen unseren Automatisierungen durchgehend mit Ansible, Powershell oder fürs Web inbesondere mit Selenium (gibts als bedienerfreundliches Browser Addon oder auch Standalone für CICD oder sowas..). Früher habe ich viel mit AutoIT gemacht, damit ließen sich die ID's auslesen. Viele andere in unserer Branche setzen auf UIPath, aber das lohnt für uns bisher nicht.
Ist nicht super befriedigend und braucht alles immernoch viel Wissen, aber vermutlich einfach stand der Technik (bzw. des Modelltrainings ;) )...
Ist nicht super befriedigend und braucht alles immernoch viel Wissen, aber vermutlich einfach stand der Technik (bzw. des Modelltrainings ;) )...