Vai al contenuto

Sviluppare un controllo per le identificazioni?


Darko

Messaggi raccomandati

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 al commento
Condividi su altri siti

  • Risposte 92
  • Creato
  • Ultima Risposta

Miglior contributo in questa discussione

Miglior contributo in questa discussione

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

  • 2 settimane dopo...

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora
  • Chi sta navigando   0 utenti

    • Nessun utente registrato visualizza questa pagina.

×
×
  • Crea Nuovo...

Informazioni importanti

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