[PYTHON] J'ai essayé de trouver la tendance du nombre de navires dans la baie de Tokyo à partir d'images satellites.

Aperçu

À partir de l'image satellite obtenue du précédent moteur Google Earth Engine, nous avons calculé la transition du nombre de voitures dans le parking de Tokyo Disneyland.

J'ai vérifié l'état d'utilisation du parking à partir d'images satellite.

Cette fois-ci, comme la fois précédente, nous obtiendrons des images satellites de Google Earth Engine et trouverons l'évolution du nombre de navires dans la baie de Tokyo.

Screenshot from 2020-09-18 18-48-17.png

Il s'agit d'un décompte des navires sur les images prises par le satellite artificiel près de l'entrée de la baie de Tokyo, et la tendance est calculée.   Je vais l'introduire dans cet article en incluant l'explication de ce graphique. De plus, le code introduit dans l'article est placé sur Github, donc si vous voulez l'essayer vous-même, veuillez l'utiliser. ** Google colaboratory est utilisé **, vous pouvez donc l'utiliser quel que soit le PC tant que vous disposez d'un environnement réseau **.

1.Tout d'abord

La dernière fois, nous avons calculé le nombre de voitures dans le parking de Tokyo Disneyland en utilisant l'image du capteur d'ondes radio (SAR) dans l'image satellite.

J'ai vérifié l'état d'utilisation du parking à partir d'images satellite.

Il est difficile d'identifier le type de véhicule tel qu'une voiture ou un camion dans l'image SAR, mais il peut être évalué qualitativement si un grand nombre de voitures sont garées sur le parking et qu'il n'est pas affecté par les nuages. Par conséquent, il peut être évalué de manière stable. Par conséquent, nous utiliserons à nouveau l'image SAR pour trouver le nombre de navires à partir de l'image satellite près de l'entrée de la baie de Tokyo. C'est parce que je pensais qu'il serait possible d'évaluer comment le nombre de navires a changé en raison de l'influence du nouveau virus corona, s'il n'a pas changé et dans quelle mesure il a changé. Je pense que ce site sera utile pour savoir à quoi ressemble le navire dans l'image SAR.

Screenshot from 2020-09-18 17-27-26.png

À propos de l'image d'observation pendant la période initiale de confirmation de fonctionnement du satellite de technologie d'observation des terres n ° 2 "Daichi n ° 2" (ALOS-2) (Partie 5 / Ship Edition)

Cette image capturée du Daichi n ° 2 est une image en mode observation avec une résolution de 3 m, et si vous êtes un gros navire, vous pouvez voir sa forme. Le point important ici est que le navire semble brillant et la mer environnante semble sombre. Le satellite SAR irradie la Terre avec des ondes radio et des images de l'intensité du signal réfléchi. À ce moment, ** les ondes radio sont émises depuis une direction oblique par rapport à la surface du sol **, donc si la surface du sol est plane, beaucoup de choses se reflètent dans la direction incidente des ondes radio, c'est-à-dire dans la direction opposée au satellite qui reçoit les ondes radio émises. Faire. Par conséquent, ** Si la surface au sol cible est plate, le signal reçu est faible et l'image sera sombre. La surface de l'eau des lacs et de la mer est extrêmement plate, elle semble donc plus sombre **. Par contre, lorsqu'il y a une structure telle qu'un bâtiment, un bâtiment, une voiture ou un bateau, l'objet est inégal, donc plus d'ondes radio sont réfléchies dans la même direction que la direction incidente, donc l'image est lumineuse. Comptons le nombre de navires dans l'image satellite, en utilisant cette ** partie brillamment réfléchie ** comme un navire.

2. Acquisition et évaluation d'images satellites

2.1 Préparation de l'environnement (construction).

Veuillez vous référer à l'article suivant pour plus de détails sur la façon d'acquérir des images satellite avec GEE. Analyse d'images satellites artificielles par Google Earth Engine et Google Colab-Analyse d'images satellite à partir de gratuitement (Introduction) -

Veuillez également vous référer à l'article suivant pour la méthode d'analyse des images satellites obtenues auprès de GEE.

J'ai vérifié l'état d'utilisation du parking à partir d'images satellite.

Bien qu'il y ait quelques chevauchements, nous allons introduire l'acquisition d'images satellites et leur traitement.

import ee
import numpy as np
import matplotlib.pyplot as plt

ee.Authenticate()
ee.Initialize()

Tout d'abord, exécutez ceci pour authentifier la connexion GEE. Lorsque vous l'exécutez, le lien sera retourné. Cliquez dessus pour effectuer la procédure d'authentification, copiez le code d'accès et saisissez-le.

Ensuite, authentifiez la connexion à Google Drive. Encore une fois, le flux est le même que celui de la certification GEE.

from google.colab import drive
drive.mount('/content/drive')

Ensuite, nous effectuerons des tâches telles que la visualisation des images satellites acquises et l'installation des modules nécessaires à leur numérisation et à leur analyse.

#Installation du package&importer
!pip install rasterio
import numpy as np
import matplotlib.pyplot as plt
import rasterio

import json
import os
import glob

import time
from datetime import datetime
from dateutil.parser import parse

Les modules fréquemment utilisés sont déjà installés dans Google Colaboratory, donc aucun travail supplémentaire n'est requis, mais cette fois nous utiliserons Geotiff, qui est une image avec des informations cartographiques ajoutées, donc il est nécessaire pour le traitement d'image ** Rasterio Installez **.

Ensuite, installez un module appelé ** folium ** pour vérifier la zone cible définie sur la carte.

!pip install folium

import folium

Maintenant que l'environnement est prêt, prenez l'image satellite de GEE.

2.2 Définition de la zone d'intérêt (zone cible)

Afin d'acquérir des images satellite de GEE, vous devez entrer les informations de latitude / longitude de la zone cible qui vous intéresse. Cette fois également, nous l'obtiendrons en utilisant le site suivant créé pour trouver et obtenir facilement la latitude et la longitude de la zone d'intérêt.

#Acquisition des informations polygonales de la zone d'intérêt.
from IPython.display import HTML
HTML(r'<iframe width="1000" height="580" src="https://gispolygon.herokuapp.com/" frameborder="0"></iframe>')

Lorsque vous exécutez cela, l'écran suivant s'affiche.

Screenshot from 2020-08-16 11-17-18.png

Après avoir élargi la zone d'intérêt, sélectionnez le polygone carré dans l'icône de gauche pour afficher le polygone de la zone d'intérêt. Après cela, cliquez sur ** Afficher les entités ** pour afficher les informations géographiques du polygone dans la fenêtre de droite. Cliquez ensuite sur ** Copier ** en bas pour copier ces informations géographiques. Cette fois, nous allons acquérir des images satellites de cette zone près de l'entrée de la baie de Tokyo. Screenshot from 2020-09-18 17-36-23.png

Collez ensuite les informations cartographiques copiées ci-dessous et entrez-les.

A  = {"type":"FeatureCollection","features":[{"properties":{"note":"","distance":"35937.06 m","drawtype":"rectangle","area":"12713.15 ha"},"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[139.71197873353958,35.33475055335104],[139.71197873353958,35.452996930987666],[139.81840878725052,35.452996930987666],[139.81840878725052,35.33475055335104],[139.71197873353958,35.33475055335104]]]}}]}

Ces informations géographiques sont traitées dans le format d'entrée pour GEE et pour l'affichage dans Folium.

#Définissez n'importe quel nom de fichier à utiliser ultérieurement. Par exemple, le nom de la zone.
object_name = 'tokyobay3'
with open(str(object_name) +'_2.geojson', 'w') as f:
    json.dump(A, f)

json_file = open(str(object_name) +'_2.geojson')
json_object = json.load(json_file)

#Seules les informations de latitude / longitude de la zone d'intérêt sont extraites de json.
AREA = json_object["features"][0]["geometry"]['coordinates'][0]

Maintenant, vérifions la zone d'intérêt définie.

m = folium.Map([(AREA[0][1]+AREA[len(AREA)-2][1])/2,(AREA[0][0]+AREA[len(AREA)-3][0])/2], zoom_start=15)

folium.GeoJson(str(object_name) +'_2.geojson').add_to(m)
m

production

Screenshot from 2020-09-18 17-38-23.png

2.3 Acquisition d'images satellites de GEE

De nombreuses images satellites et de nombreuses informations déjà analysées sont définies dans GEE. Pour plus de détails, veuillez consulter Data Catalog. Sentinel-1 et 2 sont les suivants.

Sentinel-1 SAR GRD: C-band Synthetic Aperture Radar Ground Range Detected, log scaling

À partir de cette page, vous pouvez utiliser les données de ** Image d'observation Sentinel-1 du 3 octobre 2014 **.

Maintenant, récupérez l'image de Sentinel-1 de GEE et enregistrez-la dans Google colaboratory.

Tout d'abord, préparez le format des informations géographiques à définir dans GEE.

region=ee.Geometry.Polygon(AREA)

Ensuite, définissez les paramètres des informations à acquérir. Cette fois, la période de l'image acquise et la destination de sauvegarde de l'image acquise sont spécifiées.

#Précisez la période
from_date='2019-01-01'
to_date='2020-08-31'

#Nom du dossier à enregistrer
dir_name_s1 = 'GEE_Sentinel1_' + object_name

Maintenant, définissons les conditions d'image pour Sentinel-1.

def ImageExport(image,description,folder,region,scale):
    task = ee.batch.Export.image.toDrive(image=image,description=description,folder=folder,region=region,scale=scale)
    task.start()


Sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD').filterBounds(region).filterDate(parse(from_date),parse(to_date)).filter(ee.Filter.eq('orbitProperties_pass', 'ASCENDING')).select(['VV'])

imageList_s1 = Sentinel1.toList(300)

Ici, comme l'image d'observation de Sentinel-1 n'utilise que l'image d'observation du satellite B à 18h00, «ASCENDING» est sélectionné dans «orbitProperties_pass». Si vous le réglez sur "Décroissant", l'image d'observation sera à 6h00.

Maintenant, dans les conditions d'acquisition d'image satellite ci-dessus, l'image de la zone d'intérêt de Sentinel-1 est acquise.

for i in range(imageList_s1.size().getInfo()):
    image = ee.Image(imageList_s1.get(i))
    ImageExport(image.reproject(crs='EPSG:4326',scale=10),image.get('system:index').getInfo(),dir_name_s1,region['coordinates'][0],10)

2.4 Affichage des images satellite et évaluation de la force du signal

Affichez et confirmez l'image satellite acquise. Les images satellites sont enregistrées dans le répertoire (dossier) défini dans mon lecteur de Google Drive. Appelez-le et affichez-le.

#Visualisation par ordre chronologique
s1_path = '/content/drive/My Drive/' + dir_name_s1 + '/'
files =os.listdir(s1_path)
files.sort()

plt.figure(figsize=(20, 40))
j=0

v = len(files)//5 +1 
for i in range(len(files)):
  #Acquérir et visualiser des images une scène à la fois
  with rasterio.open(s1_path + files[i]) as src:
      arr = src.read()
  j+=1#Décaler et placer la position de tracé de l'image
  plt.subplot(v,5,j)
  plt.imshow(arr[0], cmap='gray')
  plt.title(files[i][33:41])#Obtenir la date à partir du nom du fichier
  plt.tight_layout()

Screenshot from 2020-09-18 18-22-25.png

L'image observée du satellite SAR est une image en noir et blanc, et la partie brillante de cette image semble être un navire. Ensuite, comptez le nombre de parties lumineuses de l'image en tant que navires.

#Lire les données
n = 2

with rasterio.open(s1_path + files[n]) as src:
    arr = src.read()

print(files[n][33:41])
#Visualisation
plt.imshow(arr[0], cmap='gray')

Screenshot from 2020-09-18 18-24-36.png

Lorsque j'ai agrandi l'image satellite, il a été confirmé qu'il y avait de nombreux points lumineux. Maintenant, trouvons la distribution d'intensité de cette image.

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

ax.hist(arr[0], bins=50)
fig.show()

Screenshot from 2020-09-18 18-25-53.png

L'intensité du signal est souvent de 0 ou moins, mais certains signaux de 0 ou plus ont également été observés. À partir de cette condition, le processus de binarisation est effectué en premier avec 0 ou plus et moins de 0.

2.5 Calculez le nombre de navires à partir d'images satellites.

Pour la méthode de comptage des objets dans l'image, je me suis référé au site suivant.

Nombre de cellules

Cette méthode effectue une binarisation avec une force de signal arbitraire, trouve la position centrale s'il y a un écart, vérifie si la position centrale est le même objet ou non dans une fenêtre arbitraire et détermine le nombre d'objets. Compter. Ensuite, je présenterai la méthode concrètement. Tout d'abord, l'image échantillon était la dernière image capturée dans l'image acquise.

#Lire les données
n = len(files) -1

with rasterio.open(s1_path + files[n]) as src:
    arr = src.read()

print(files[n][33:41])
#Visualisation
plt.imshow(arr[0], cmap='gray')

Screenshot from 2020-09-18 18-30-40.png

Vous pouvez voir qu'il y a de nombreux points lumineux. Ensuite, le traitement de binarisation est effectué. Ici, le processus de binarisation est effectué avec 0 ou plus et moins de 0 en référence à la distribution d'intensité du signal ci-dessus. De plus, une carte de la position centrale est créée à partir de l'image binarisée obtenue.

#Processus de binarisation
import cv2

binimg = (arr[0]>0) #Définissez 0 comme seuil.

plt.imshow(binimg)
plt.colorbar()
plt.show()

#Carte de distance(distance map)Calculer
binimg = binimg.astype(np.uint8)
distmap = cv2.distanceTransform(binimg,1,3)

plt.imshow(distmap)
plt.colorbar()
plt.show()

Screenshot from 2020-09-18 18-33-24.png

Agrandir la partie où de nombreux navires ont été imagés.

plt.imshow(distmap[0:200,0:200])
plt.colorbar()
plt.show()

Screenshot from 2020-09-18 18-34-31.png

Vous pouvez voir que le signal qui semble être un navire s'étend dans une certaine direction. Ensuite, obtenez la distribution avec la force maximale du signal à partir de cette image. À cette époque, la taille du navire était fixée à 30 pixels. En d'autres termes, nous définissons qu'il n'y a qu'un seul vaisseau en 30 pixels.

#Calculez l'emplacement avec la valeur maximale de la carte de distance

out = distmap*0
ksize=30 #Valeur maximale à moins de 30 pixels
for x in range(ksize,distmap.shape[0]-ksize*2):
    for y in range(ksize,distmap.shape[1]-ksize*2):
        if distmap[x,y]>0 and distmap[x,y]==np.max(distmap[x-ksize:x+ksize,y-ksize:y+ksize]):
            out[x,y]=1

                
plt.imshow(distmap[0:200,0:200])
plt.colorbar()
plt.show()

Ensuite, si la force du signal est élevée à un pixel près de la position qui semble être un navire, il peut être faussement détecté, donc s'il se trouve dans une certaine plage, il sera ignoré.

#Gonfler, détecter et compter les contours

out = cv2.dilate(out,(10,10)) #10*Gonflez à 10 et ne comptez pas si dans la même plage

contours, _ = cv2.findContours(out.astype(np.uint8), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

arr=[]
for i in contours:
    x_=0
    y_=0
    for j in i:
        x_ += j[0][0]
        y_ += j[0][1]
    arr.append([x_/len(i), y_/len(i)])
arr = np.array(arr)
                
plt.imshow(distmap[0:200,0:200])
plt.colorbar()
plt.show()

print("Nombre de navires: ", len(arr)) 
print(arr)

Screenshot from 2020-09-18 18-41-32.png

Ici, le nombre de navires et leurs positions sont affichés. En utilisant cette méthode, le nombre de navires est calculé à partir de l'image satellite acquise et la transition est représentée graphiquement.

#Graphique chronologique du nombre estimé de navires dans la zone

#Visualisation par ordre chronologique
s1_path = '/content/drive/My Drive/' + dir_name_s1 + '/'
files =os.listdir(s1_path)
files.sort()

sum_ship = []
label_signal = []

for i in range(len(files)):
  label_signal.append(files[i][33:41])
  
  #Acquérir et visualiser des images une scène à la fois
  with rasterio.open(s1_path + files[i]) as src:
      arr = src.read()
  
  #Processus de binarisation
  binimg = (arr[0]>0)

  #Carte de distance(distance map)Calculer
  binimg = binimg.astype(np.uint8)
  distmap = cv2.distanceTransform(binimg,1,3)

  out = distmap*0
  ksize=30 #Valeur maximale à moins de 30 pixels
  for x in range(ksize,distmap.shape[0]-ksize*2):
      for y in range(ksize,distmap.shape[1]-ksize*2):
          if distmap[x,y]>0 and distmap[x,y]==np.max(distmap[x-ksize:x+ksize,y-ksize:y+ksize]):
              out[x,y]=1

  out = cv2.dilate(out,(10,10)) #10*Gonflez à 10 et ne comptez pas si dans la même plage
  contours, _ = cv2.findContours(out.astype(np.uint8), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

  num=[]
  for i in contours:
      x_=0
      y_=0
      for j in i:
          x_ += j[0][0]
          y_ += j[0][1]
      num.append([x_/len(i), y_/len(i)])
  num = np.array(num)


  sum_ship.append(len(num))


#Visualisation
fig,ax = plt.subplots(figsize=(15,6))
plt.plot(sum_ship, marker='o')
ax.set_xticks(np.arange(0,len(files)))
ax.set_xticklabels(label_signal, rotation=90)
plt.show()

Screenshot from 2020-09-18 18-48-17.png

L'axe horizontal est la date d'observation et l'axe vertical est le nombre de navires calculé à partir de l'image d'observation. Il atteindra sa valeur maximale vers mars 2019, mais après cela, ce sera environ 30 navires en moyenne. Je me demandais si le mouvement par bateau avait été restreint ou diminué lors de la catastrophe de Corona après mars 2020, mais pour autant que je sache, il semble que le nombre de parkings à Tokyo Tisneyland ait considérablement diminué. ne pas. En fait, j'ai cherché sur Internet pour voir combien de navires naviguaient dans la baie de Tokyo, et j'ai trouvé un article sur les navires de croisière qui s'abstiennent d'opérer, mais de nombreux autres navires sont en déclin. Il n'y avait rien. Je pense que même à Corona, tout le monde faisait attention à la sécurité afin de stabiliser la distribution. Je vous remercie. J'ai essayé d'enquêter sur les endroits où de nombreux navires naviguent autres que la baie de Tokyo par la même méthode, mais il n'y a pas de tendance à ce que le nombre de coronas soit extrêmement réduit même s'il s'agit d'un dommage corona comme cette fois, et les personnes qui exploitent des navires Grâce à mes efforts, j'ai réalisé qu'une distribution stable était maintenue.

3. Enfin

Nous avons présenté comment calculer le nombre de navires dans la baie de Tokyo comme exemple d'acquisition et d'analyse d'images satellite à l'aide du moteur Google Earth fourni par Google. J'espère que ce sera l'occasion pour plus de gens de s'intéresser aux images satellites. Si vous avez des commentaires ou des questions, n'hésitez pas à commenter. Je suis heureux.

Article de référence

Comment obtenir gratuitement les dernières images satellite. J'ai essayé d'acquérir automatiquement l'image d'observation du satellite artificiel (Sentinel-2) en utilisant l'API. Créer une carte de distribution estimée des voitures à partir d'images satellites artificielles de PyTorch. J'ai vérifié l'état d'utilisation du parking à partir d'images satellite.

[Sequel] Analyse d'images satellitaires artificielles par Google Earth Engine et Google Colab-Analyse d'images satellite commençant gratuitement (pratique) - Analyse d'images satellites artificielles par Google Earth Engine et Google Colab-Analyse d'images satellite à partir de gratuitement (Introduction) - [6. Exécution GEE locale par Python](https://sites.google.com/site/mizuochipublic/%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3 % E3% 83% 86% E3% 83% B3% E3% 83% 84-tutoriels-de-télédétection / moteur-google-earth% E5% 85% A5% E9% 96% 80/6-python% E3% 81 % AB% E3% 82% 88% E3% 82% 8B% E3% 83% AD% E3% 83% BC% E3% 82% AB% E3% 83% AB% E3% 81% 8B% E3% 82% 89 % E3% 81% AEgee% E5% AE% 9F% E8% A1% 8C)

Kihon de données satellitaires - Compréhension, type, fréquence, résolution, cas d'utilisation ~ Pouvez-vous voir des gens depuis le satellite artificiel? ~ Par satellite, résolution au sol / résumé de l'heure locale ~

Sentinel-1 SAR GRD: C-band Synthetic Aperture Radar Ground Range Detected, log scaling

Nombre de cellules

Recommended Posts

J'ai essayé de trouver la tendance du nombre de navires dans la baie de Tokyo à partir d'images satellites.
J'ai essayé d'adapter la fonction exponentielle et la fonction logistique au nombre de patients positifs au COVID-19 à Tokyo
J'ai essayé de prédire le nombre de personnes infectées par le virus corona en tenant compte de l'effet de s'abstenir de sortir
J'ai essayé de trouver l'entropie de l'image avec python
Comment trouver le nombre optimal de clusters pour les k-moyennes
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de trier les objets de l'image du plat de steak-② Tri des numéros de chevauchement
(Python) J'ai essayé d'analyser 1 million de mains ~ J'ai essayé d'estimer le nombre d'AA ~
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
[Version terminée] Essayez de connaître le nombre d'habitants de la ville à partir de la liste d'adresses avec Python
J'ai essayé de refactoriser le code du modèle publié dans "Obtenir des images de l'API Flickr avec Python" (Partie 2)
J'ai essayé de trouver le rapport de circonférence par 100 millions de chiffres
Trouvez le nombre de jours dans un mois
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé de prédire le nombre de personnes infectées par le virus corona au Japon par la méthode du dernier article en Chine
Je veux détecter des images de chats d'Instagram
Comment obtenir le nombre de chiffres en Python
J'ai essayé de détecter l'iris à partir de l'image de la caméra
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de trier les objets de l'image du plat de steak-④ Clustering
J'ai utilisé Python pour découvrir les choix de rôle des 51 "Yachts" dans le monde.
Trouvez une ligne directrice pour le nombre de processus / threads à définir sur le serveur d'applications
J'ai essayé de découvrir les grandes lignes de Big Gorilla
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
Maya | Découvrez le nombre de polygones dans l'objet sélectionné
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
Examiner la plage d'erreur dans le nombre de décès dus à la pneumonie
J'ai essayé de classer le nombre de décès par habitant de COVID-19 (nouveau virus corona) par pays
[Pour les débutants] Je souhaite expliquer le nombre d’apprentissage d’une manière facile à comprendre.
[Deep Learning from scratch] J'ai essayé d'expliquer la confirmation du gradient d'une manière facile à comprendre.
Python --Trouvez le nombre de groupes dans l'expression regex
[Python] Programmation pour trouver le nombre de a dans une chaîne de caractères qui se répète un nombre spécifié de fois.
J'ai essayé de résumer le code souvent utilisé dans Pandas
J'ai essayé d'illustrer le temps et le temps du langage C
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
J'ai essayé de résumer les commandes souvent utilisées en entreprise
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
J'ai essayé de trouver la matrice affine dans l'alignement de l'image (correspondance des points caractéristiques) en utilisant la transformation affine
J'ai essayé de prédire le genre de musique à partir du titre de la chanson sur le réseau neuronal récurrent
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai essayé de trier les objets de l'image du plat de steak-① Détection d'objets
J'ai essayé de mettre HULFT IoT (Edge Streaming) dans la passerelle Rooster de Sun Electronics
[Traitement du langage naturel] J'ai essayé de visualiser les remarques de chaque membre de la communauté Slack
J'ai essayé d'obtenir diverses informations de l'API codeforces