Meta's Segment quoi que ce soit (SAM) a démontré sa capacité à détecter des objets dans différents domaines d'une image. L'architecture de ce modèle est flexible et les utilisateurs peuvent le guider avec diverses invites. Pendant la formation, il pourrait segmenter des objets qui n'étaient pas dans son ensemble de données.
Ces fonctionnalités font de ce modèle un outil très efficace pour détecter et segmenter des objets à quelque fin que ce soit. Cet outil peut également être utilisé pour des tâches de segmentation spécifiques, comme nous l'avons vu avec des applications basées sur l'industrie comme les véhicules autonomes et la robotique. Un autre détail crucial de ce modèle est la façon dont il peut segmenter les images à l'aide de masques et de boîtes de délimitation, ce qui est essentiel dans la façon dont il fonctionne à des fins médicales.
Cependant, le modèle de segment de Meta pour l'imagerie médicale joue un rôle énorme dans le diagnostic et la détection d'anomalies dans les images numérisées. Medsam forme un modèle sur les paires de masques d'image collectés à partir de différentes sources. Cet ensemble de données couvre également plus de 15 modalités d'image et plus de 30 types de cancer.
Nous allons discuter de la façon dont ce modèle peut détecter des objets à partir d'images médicales à l'aide de boîtes de délimitation.
Cet article a été publié dans le cadre du Blogathon de la science des données.
SAM est un modèle de segmentation d'image développé par Meta pour identifier les objets dans presque toutes les régions d'une image. Le meilleur attribut de ce modèle est sa polyvalence, qui lui permet de généraliser lors de la détection d'images.
Ce modèle a été formé sur 11 millions d'images fascinantes dans le monde réel, mais plus intrigant, il peut segmenter des objets qui ne sont même pas présents dans son ensemble de données.
Il existe de nombreux modèles de segmentation d'image et de détection d'objets avec différentes structures. Des modèles comme celui-ci peuvent être des modèles spécifiques à des tâches ou de base, mais Sam, étant un modèle de «segment-it-all», peut être à la fois car il a un bon fond fondamental pour détecter des millions d'images tout en laissant de la place à un réglage fin. C'est là que les chercheurs viennent avec diverses idées, tout comme avec Medsam.
Un point culminant des capacités de Sam est sa capacité à s'adapter. Il s'agit également d'un modèle de segmentation basé sur une invite, ce qui signifie qu'il peut recevoir des informations sur la façon d'effectuer des tâches de segmentation. Ceux-ci incluent le premier plan, l'arrière-plan, une boîte rugueuse, des boîtes de délimitation, des masques, des textes et d'autres informations qui pourraient aider le modèle à segmenter l'image.
Le principe de base de l'architecture de ce modèle est l'encodeur d'image, le codeur rapide et l'encodeur de masque. Les trois composants jouent un rôle énorme dans l'exécution des tâches de segmentation. L'image et l'encodeur rapides aident à générer l'image et les incorporations invites. Le codeur de masque détecte le masque généré pour l'image que vous souhaitez segmenter à l'aide de l'invite.
L'utilisation du modèle de segment n'importe quoi à des fins médicales valait la peine d'être essayée. De plus, le modèle a un grand ensemble de données et des capacités variables, alors pourquoi pas l'imagerie médicale? Cependant, l'application dans la segmentation médicale est venue avec certaines limitations en raison de la nature des images médicales et des problèmes avec la façon dont le modèle peut gérer les boîtes de délimitation incertaines dans l'image. Avec les défis de la nature des masques d'image dans les images médicales, le besoin de spécialisation devient essentiel. Cela a donc provoqué l'innovation de Medsam, un modèle de segmentation construit sur l'architecture de Sam mais adapté aux images médicales.
Ce modèle peut gérer diverses tâches dans les structures anatomiques et différentes instances d'image. L'imagerie médicale obtient des résultats efficaces avec ce modèle; 15 Les modalités d'imagerie et plus de 30 types de cancer montrent la grande échelle de la formation de segmentation d'image médicale impliquée dans Medsam.
Le Medsam a été construit sur le modèle SAM pré-formé. Le cadre implique l'image et les encodeurs rapides générant des incorporations pour le masque d'encodage sur les images cibles.
L'encodeur d'image dans le segment tout le modèle traite les informations de position qui nécessitent beaucoup de puissance de calcul. Pour rendre le processus plus efficace, les chercheurs de ce modèle ont décidé de «geler» à la fois l'encodeur d'image et l'encodeur rapide. Cela signifie qu'ils ont cessé de mettre à jour ou de modifier ces pièces pendant la formation.
L'encodeur rapide, qui aide à comprendre les positions des objets à l'aide de données du codeur de boîte à délimitation dans SAM, est également restée inchangée. En congelant ces composants, ils ont réduit la puissance de calcul nécessaire et ont rendu le système plus efficace.
Les chercheurs ont amélioré l'architecture de ce modèle pour le rendre plus efficace. Avant d'inciter le modèle, ils ont calculé les intégres d'images des images d'entraînement pour éviter les calculs répétés. L'encodeur de masque - le seul à régler de côté - crée maintenant un encodeur de masque au lieu de trois, car la boîte de délimitation aide clairement à définir la zone de segment. Cette approche a rendu la formation plus efficace.
Voici une illustration graphique du fonctionnement de ce modèle:
Ce modèle aurait besoin de certaines bibliothèques pour fonctionner, et nous plongerons dans la façon dont vous pouvez exécuter des tâches de segmentation d'imagerie médicale sur une image.
Nous aurons besoin de quelques bibliothèques supplémentaires pour exécuter ce modèle, car nous devons également dessiner des lignes sur les boîtes de délimitation dans le cadre de l'invite. Nous commencerons par commencer par les demandes, Numpy et MetaPlot.
Demandes d'importation Importer Numpy comme NP Importer Matplotlib.pyplot en tant que plt à partir de l'image d'importation PIL De Transformers Importer Sammodel, Samprocesseur Importer une torche
La bibliothèque «demande» aide à récupérer les images de leur source. La bibliothèque «Numpy» devient utile car nous effectuons des opérations numériques impliquant les coordonnées des boîtes de délimitation. PIL et MetaPlot aident respectivement le traitement et l'affichage de l'image. En plus du modèle SAM, le processeur et la torche (maniement de calcul défini dans le code ci-dessous) sont des packages importants pour exécuter ce modèle.
device = "cuda" if torch.cuda.is_available () else "CPU"
Model = sammodel.from_pretrained ("flaviagiammarino / medsam-vit-base"). à (dispositif) processeur = samprocessor.from_pretraind ("flaviagiammarino / medsam-vit-base")
Par conséquent, le modèle pré-formé utilise généralement le dispositif informatique le plus approprié, comme un GPU ou un CPU. Cette opération se produit avant de charger le processeur du modèle et de les préparer pour les données d'entrée d'image.
img_url = "https://huggingface.co/flaviagiammarino/medsam-vit-base/resolol/main/scripts/input.png" raw_image = image.open (reques.get (img_url, stream = true) .raw) .Convert ("rgb") input_boxes = [95., 255., 190., 350.]
Le chargement de l'image avec une URL est facile, en particulier avec notre bibliothèque dans l'environnement. Nous pouvons également ouvrir l'image et la convertir en un format compatible pour le traitement. La liste des 'Input_boxes' définit la boîte de délimitation avec des coordonnées [95, 255, 190, 350]. Ce nombre représente les coins supérieur à gauche et en bas de l'image de la région d'intérêt. En utilisant la boîte de délimitation, nous pouvons effectuer la tâche de segmentation en se concentrant sur une région spécifique.
Ensuite, nous traitons l'entrée d'image, exécutons le modèle de segmentation et préparons le masque de sortie. Le processeur de modèle prépare l'image brute et les boîtes d'entrée et les convertit en un format approprié pour le traitement. Par la suite, l'entrée traitée est exécutée pour prédire les probabilités de masque. Ce code se traduit par un masque raffiné basé sur les probabilités pour la région segmentée.
entrées = processeur (raw_image, input_boxes = [[input_boxes]], return_tensers = "pt"). vers (périphérique) sorties = modèle (** entrées, multimask_output = false) probs = proced.image_processor.post_process_masks (outputs.pred_masks.sigmoïd (). cpu (), entrées ["original_sizes"]. cpu (), entrées ["reshaped_input_size"]. cpu (), binaris
Def Show_Mask (Mask, AX, Random_Color): Si Random_Color: color = np.concatenate ([np.random.random (3), np.array ([0,6])], axe = 0) autre: color = np.array ([251/255, 252/255, 30/255, 0,6]) h, w = mask.shape [-2:] mask_image = mask.Reshape (h, w, 1) * colore.Reshape (1, 1, -1) ax.imshow (mask_image)
Ici, nous essayons de montrer le masque coloré sur l'image à l'aide de 'Axe. montrer.' La fonction show_mask affiche un masque de segmentation sur un tracé. Il peut utiliser une couleur aléatoire ou le jaune par défaut. Le masque est redimensionné pour s'adapter à l'image, superposé avec la couleur sélectionnée et visualisé à l'aide de «Ax.show».
Ensuite, la fonction dessine un rectangle en utilisant les coordonnées et sa position. Ce processus s'exécute comme indiqué ci-dessous;
Def Show_box (Box, AX): x0, y0 = boîte [0], boîte [1] w, h = box [2] - Box [0], Box [3] - Box [1] ax.add_patch (plt.rectangle ((x0, y0), w, h, edgecolor = "blue", faceColor = (0, 0, 0, 0), lw = 2))
Fig, AX = PLT.Subpots (1, 2, FigSize = (10, 5)) ax [0] .imshow (np.array (raw_image)) show_box (input_boxes, ax [0]) ax [0] .set_title ("Image d'entrée et boîte de délimitation") hache [0] .axis ("off") ax [1] .imshow (np.array (raw_image)) show_mask (mask = problème [0]> 0,5, ax = ax [1], random_color = false) show_box (input_boxes, ax [1]) AX [1] .set_title ("Segmentation Medsam") hache [1] .axis ("off") plt.show ()
Ce code crée une figure avec deux sous-intrigues côte à côte pour afficher l'image d'entrée avec une boîte de délimitation et le résultat. La première sous-intrigue montre l'image d'origine avec la boîte de délimitation, et la seconde montre l'image avec le masque superposé et la boîte de délimitation.
Sam, en tant que modèle fondamental, est un outil polyvalent; Avec ses capacités de généralisation élevées et les millions de formations de données à partir d'images du monde réel, il y a beaucoup de choses que ce modèle peut faire. Voici quelques applications courantes de ce modèle:
Medsam est une étape importante dans le cas d'utilisation du segment quoi que ce soit. L'imagerie médicale est plus complexe que les images régulières; Ce modèle nous aide à comprendre ce contexte. L'utilisation de différentes approches diagnostiques pour détecter les types de cancer et d'autres cellules en imagerie médicale peut rendre ce modèle plus efficace pour la détection spécifique à la tâche.
La polyvalence du segment de Meta, tout ce qui a montré un grand potentiel. Sa capacité d'imagerie médicale est une étape importante dans la révolution des diagnostics et des tâches connexes dans l'industrie des soins de santé. L'intégration des boîtes de délimitation le rend encore plus efficace. L'imagerie médicale ne peut que s'améliorer à mesure que le modèle de base SAM évolue.
A. SAM est une technique de traitement d'image développée par Meta pour détecter les objets et les segmenter dans n'importe quelle région dans une image. Il peut également segmenter des objets non formés dans l'ensemble de données du modèle. Ce modèle est formé pour fonctionner avec des invites et des masques et est adaptable dans divers domaines.
Q2. En quoi Medsam diffère-t-il du modèle SAM original?A. Medsam est une version affinée de SAM spécialement conçue pour l'imagerie médicale. Alors que SAM est à usage général, Medsam est optimisé pour gérer la nature complexe de l'imagerie médicale, ce qui se traduit par diverses modalités d'imagerie et la détection du cancer.
Q3. SAM peut-il être utilisé pour des applications en temps réel?A. Les capacités de polyvalence et de traitement en temps réel de ce modèle permettent d'être utilisées dans des applications en temps réel, y compris les véhicules autonomes et la robotique. Il peut détecter et comprendre rapidement et efficacement des objets dans les images.
Les médias présentés dans cet article ne sont pas détenus par l'analytique vidhya et sont utilisés à la discrétion de l'auteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!