Jump to content

Sviluppare un controllo per le identificazioni?


Darko
 Share

Recommended Posts

Ciao a tutti,

dal momento che richiedere la schedina per i dati per le identificazioni sta diventando veramente ripetitivo e al limite del ridicolo mi metto a disposizione per studiare una ed implementare una soluzione che obblighi gli utenti a compilare i campi obbligatori.

La mia idea è quella di mostrare una finestra popup (modale) con i campi da compilare:

Data: (eventualmente widget calendario)
Luogo: (eventualmente tendina province + comune come campo libero)
Posizione e microhabitat: (campo libero)
Dimensioni: tendina con valori preselezionati.

Finché non vengono compilati tutti i campi non sarà possibile inviare il post. Cercherei anche di impostare un controllo sull'avvenuto caricamento di almeno una foto.

I dati con tendina precompilata ha molteplici vantaggi, oltre ad uniformare i dati raccolti, permette anche di avere un dato "pulito" che può anche essere utilizzato in un eventuale database.

Infatti, una bella evoluzione di questa modifica potrebbe essere il salvataggio dei dati in un database che raccolga i dati inseriti e l'identificazione finale. Oltre al valore in sè sarebbe molto utile per addestrare un'eventuale rete neurale per aiutare nell'identificazione gli utenti. Ma stiamo veramente andando "oltre" :)

Cosa ne pensate?

Io non ho tantissimo tempo, ma mi metto a disposizione per tentare questa implementazione. 
 

Link to comment
Share on other sites

  • Replies 92
  • Created
  • Last Reply

Top Posters In This Topic

Sì, ho rinnovato giusto oggi.

Secondo me si può suddividere il lavoro in fasi ben precise.

1) Interfaccia inserimento dati obbligatori

Si tratta di uno script che funziona solo lato client, quindi un javascript che si attiva solo nella sezione identificazioni, solo nei nuovi post. Non conosco Invision ma la documentazione delle API sembra buona. Questa parte rappresenta il minimo indispensabile per poter appunto rendere più efficiente la sezione identificazioni, le fasi successive magari non sono indispensabili, ma sarebbe sciocco non tentare di salvare dei dati una volta che li abbiamo già puliti.

2) Persistenza dei dati

Sempre attraverso le API di Invision si possono successivamente leggere i post, estrarre i dati della schedina e salvarli in un database separato.

3) Uso dei dati

E qui ci si può solo sbizzarrire, una volta che si hanno date, specie, dimensioni, località e foto. Personalmente mi piacerebbe sviluppare poi un software open source di intelligenza artificiale per l'identificazione automatica, però servirebbero molti dati. Ma oltre a questo si possono stilare delle statistiche a mio avviso interessanti.

 

Siccome nei vari lustri (tanti!) della mia vita ho visto nascere ennemila progetti web rimasti orfani dopo poco tempo, il mio consiglio è appunto di non andare troppo in là con le idee ma concentrarsi su un primo step ben definito. Già portare a termine il punto 1) sarebbe ottimo.

 

Link to comment
Share on other sites

Ciao Diego @Darko, le tue idee sono buone e l'unico ostacolo che vedo è Invision. Infatti, pur essendo una board molto elastica, è comunque proprietaria e non so quanto ci si possa mettere mano. Il modulo di caricamento foto ad esempio è stato fatto da un mio amico in quanto invision non prevedeva le funzioni che a noi necessitavano. Ma per creare un form di inserimento non saprei proprio se è possibile. Ci guarderemo.

Inoltre, sulla questione "recupero dati identificativi e riutilizzo", io avevo già pensato ad un utilizzo interessante di cui se vuoi ti parlo. Se hai voglia di portare avanti questo progetto noi possiamo sicuramente appoggiarlo, oltre che apprezzarti per aver preso l'iniziativa. Grazie!

Sentiamoci in privato :4fuu9h1::4fuu9h1::4fuu9h1:

Link to comment
Share on other sites

1 ora fa, 00xyz00 ha scritto:

Ciao Diego @Darko, le tue idee sono buone e l'unico ostacolo che vedo è Invision. Infatti, pur essendo una board molto elastica, è comunque proprietaria e non so quanto ci si possa mettere mano. Il modulo di caricamento foto ad esempio è stato fatto da un mio amico in quanto invision non prevedeva le funzioni che a noi necessitavano. Ma per creare un form di inserimento non saprei proprio se è possibile. Ci guarderemo.

Sentiti libero di coinvolgermi, mi occupo di sviluppo web dal lontano 1999. La form di inserimento sarebbe costruita totalmente in JavaScript, senza entrare troppo nel tecnico, penso che se avete già inserito qualcosa di custom come appunto il  modulo di upload, questo dovrebbe essere decisamente più semplice. 

Inoltre, il fatto che il forum usi CKEditor come editor dei post, ci solleva probabilmente anche dal doverci interfacciare con Invision.

1 ora fa, 00xyz00 ha scritto:

Sentiamoci in privato :4fuu9h1::4fuu9h1::4fuu9h1:

Ok!

Link to comment
Share on other sites

Trovo che sia un'idea davvero interessante! Complimenti @Darko!

Vincolare l'identificazione ad un format preciso toglierebbe ogni sorta di "scusa" (come se i banner in ogni dove non bastassero.....) per non inserire i dati.

5 ore fa, Darko ha scritto:

Personalmente mi piacerebbe sviluppare poi un software open source di intelligenza artificiale per l'identificazione automatica

Caspita, arrivare ad un risultato del genere sarebbe fighissimo. Il riconoscimento in quel caso dovrebbe tener conto (soprattutto) delle immagini però, in quanto i dati di ritrovamento possono scremare solo fino ad un certo punto, e questo vorrebbe dire che le foto caricate dovrebbero rispettare standard (bene o male) precisi. Mi sa che l'intoppo maggiore sarebbe quello, oltre all'infrastruttura necessaria a far girare una rete neurale di questo calibro (sicuramente tra una manciata di anni sarà anche più alla portata). Inoltre (sempre a meno di immagini veramente precise e dettagliate) difficilmente potrebbe arrivare oltre la famiglia (cosa che in ogni caso potrebbe tornare utile); A meno che non si istruisca per riconoscere le specie comuni tra un database di immagini certe (per dire: Steatoda, Zoropsis, Loxosceles, Araneus, Cyrtophora, etc.). Servirebbe sempre il doveroso controllo umano per accettare un'eventuale risposta automatica, ma sarebbe comodissimo!

In ogni caso molto intrigante! Grande!

 

Link to comment
Share on other sites

Intanto ho già un prototipo funzionante, lasciate perdere la grafica, è stato fatto velocemente ma è già funzionale.

Un paio di screenshot:

2019_02_06-22_32_31_9d5c3.jpg

2019_02_06-22_32_31_f2d79.jpg

Il codice è questo:

(function () {

	var css = document.createElement("style");
	css.type = "text/css";
	css.innerHTML  = "#dati-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, .8); }";
	css.innerHTML += "#dati-popup { position: absolute; left: 50%; top: 50%; width: 500px; height: 400px; margin: -200px 0 0 -250px; background: #fff; border: 10px solid rgba(0,0,0,.5); border-adius: 10px; padding: 10px; }";
	css.innerHTML += "#dati-popup .field { margin-bottom: 10px; }";
	css.innerHTML += "#dati-popup .field label { display: inline-block; }";
	css.innerHTML += "#dati-popup .field input { display: inline-block; width: 150px; margin-left: 10px; }";
	document.body.appendChild(css);


	function makeField(name, id, type, values) {
		var $field = $("<div class='field'></div>");
		$field.append("<label>"+name+"</label>");
		switch(type) {
			case "text":
				$field.append("<input type='text' id='"+id+"'>");
				break;
			case "date":
				$field.append("<input type='date' id='"+id+"'>");
				break;
		}

		return $field;
	}

	var $overlay = $("<div id='dati-overlay'></div>");

	var $popup = $("<div id='dati-popup'></div>");

	$overlay.append($popup);	

	var $fieldset = $("<div></div>");
	$fieldset.css({
		margin: 10
	});

	$fieldset.append("<h4>Dati per identificazione</h4>");

	$popup.append($fieldset);

	$fieldset.append(makeField("Data", "data", "date", null));
	$fieldset.append(makeField("Luogo", "luogo", "text", null));
	$fieldset.append(makeField("Posizione/Micro-habitat", "posizione", "text", null));
	$fieldset.append(makeField("Dimensioni", "dimensioni", "text", null));

	var $insert = $("<a href='#' class='ipsButton ipsButton_medium ipsButton_primary'>Inserisci i dati</a>");

	$insert.click(function () {
		var html = "<p style='padding:10px; background: #f0f0f0; border: 1px solid #ccc; display: inline-block; min-width: 400px;'>";
		$.each(['data', 'luogo', 'posizione', 'dimensioni'], function (i, e) {
			html += "<b>" + e + "</b>: " + $("#" + e).val() + "<br>";
		});
		html += "</p><br><br>";
		CKEDITOR.instances["topic_content"].insertHtml(html);
		$overlay.remove();
	});

	$fieldset.append($insert);

	$("body").append($overlay);
})();

Secondo me ce la caviamo senza dover metter mano in Invision.

Link to comment
Share on other sites

15 minuti fa, Paolina ha scritto:

Oh!! 😳

Il codice è SOLO quello? 🤪😂

😂sì, infatti è più complicato spiegare ciò che fa rispetto a... farlo.

 

10 ore fa, MattiaPof ha scritto:

Caspita, arrivare ad un risultato del genere sarebbe fighissimo. Il riconoscimento in quel caso dovrebbe tener conto (soprattutto) delle immagini però, in quanto i dati di ritrovamento possono scremare solo fino ad un certo punto, e questo vorrebbe dire che le foto caricate dovrebbero rispettare standard (bene o male) precisi. Mi sa che l'intoppo maggiore sarebbe quello, oltre all'infrastruttura necessaria a far girare una rete neurale di questo calibro (sicuramente tra una manciata di anni sarà anche più alla portata). Inoltre (sempre a meno di immagini veramente precise e dettagliate) difficilmente potrebbe arrivare oltre la famiglia (cosa che in ogni caso potrebbe tornare utile); A meno che non si istruisca per riconoscere le specie comuni tra un database di immagini certe (per dire: Steatoda, Zoropsis, Loxosceles, Araneus, Cyrtophora, etc.). Servirebbe sempre il doveroso controllo umano per accettare un'eventuale risposta automatica, ma sarebbe comodissimo!

Per quanto riguarda la capacità di calcolo ci sono varie soluzioni, come Amazon AWS, Google Cloud o Microsoft Azure. Come dici giustamente sarebbe necessario avere delle immagini buone, infatti per la fase di addestramento sarebbe indispensabile un lavoro di preparazione manuale, ma fidati che non servono milioni di foto.

L'anno scorso ho preso un diplomino su Udacity sull'intelligenza artificiale e l'esame finale era proprio il riconoscimento di immagini (in quel caso erano fiori) e usando reti pre-addestrate di tipo convolutional, è sufficiente avere una decina di foto per specie per ottenere già dei risultati discreti/buoni. Se ad esempio si facesse un lavoro un po' certosino avremmo già parecchio materiale da utilizzare. Se poi riusciamo a usare le API di Invision potrebbe essere possibile scaricare automaticamente le foto e associare la specie o il genere prendendolo dal titolo del topic. Il tutto ovviamente validato manualmente da esperti, perché come si dice in questo capo, i computer sono dannatamente veloci ma anche dannatamente stupidi :D

 

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.