精华内容
下载资源
问答
  • 样本标注

    2019-06-14 14:37:00
    int main() { std::ifstream fin("D:\\Data\\MyAnnoData\\视频\\0.txt");//打开原始样本图片文件列表 Mat colorImage, detectSquareImg; string videoReadPath; int videoCnt = 0;//视频计数 F...
    int main()
    {
        std::ifstream fin("D:\\Data\\MyAnnoData\\视频\\0.txt");//打开原始样本图片文件列表   
    
        Mat colorImage, detectSquareImg;
        string videoReadPath;
    
        int videoCnt = 0;//视频计数
    
        FILE* f = fopen("F:\\videoList.txt", "wt");
        if (f == NULL)
        {
            printf("文件打开失败!\n");
        }
        else
        {
            printf("文件打开成功!\n");
        }
    
        while (getline(fin, videoReadPath)) //一行一行读取文件列表  
        {
            videoCnt++;
            string videoPath = videoReadPath;
            cout << videoPath << endl;
    
            VideoCapture capture(videoPath);//读入视频
    
    
            if (!capture.isOpened())//判断是否打开视频文件  
            {
                cout << "video not open..." << endl;
                continue;
            }
            else
            {
                int imgCnt = 0;//图片计数            
                while (1)
                {
                    imgCnt++;
                    cout << imgCnt << endl;
    
                    if (imgCnt % 4 != 0)
                    {
                        continue;
                    }
    
                    capture >> colorImage;//读入图片
                    if (colorImage.empty())
                    {
                        break;
                    }
                    else
                    {
                        if (colorImage.channels() != 3)
                        {
                            cvtColor(colorImage, colorImage, CV_GRAY2BGR);
                        }
    
                        //调用算法进行检测
                        DetectNcnn detectNcnn;
                        int imgheight = colorImage.rows;
                        int    imgwidth = colorImage.cols;
                        int  maxl = imgheight > imgwidth ? imgheight : imgwidth;
                        int    paddingleft = (maxl - imgwidth) >> 1;
                        int    paddingright = (maxl - imgwidth) >> 1;
                        int    paddingbottom = (maxl - imgheight) >> 1;
                        int    paddingtop = (maxl - imgheight) >> 1;
    
                        copyMakeBorder(colorImage, detectSquareImg, paddingtop, paddingbottom, paddingleft, paddingright, cv::BORDER_CONSTANT, 0);
    
                        objects.clear(); classes.clear(); confidences.clear();
    
                        detectNcnn.detectObjNcnn(detectSquareImg.clone(), objects, classes, confidences);
    
                        int cntObject = classes.size();//目标个数,需要写入txt
    
                        string saveImgName = "F:\\dmsImg\\20190605" + to_string(videoCnt) + "to"+to_string(imgCnt) + ".jpg";
    
                        if (cntObject > 0) //有目标,保存图片,把图片名和图片中目标个数写入txt
                        {
                            fprintf(f, "%s%d%s%d%s", "20190605", videoCnt, "to", imgCnt, ".jpg"); //图片名写入txt
                            fprintf(f, "%s", "\n"); //写入换行
                            fprintf(f, "%d", cntObject);//目标个数写入txt
                            fprintf(f, "%s", "\n"); //写入换行
    
                            imwrite(saveImgName, detectSquareImg);
                        }
    
                        //检测结果分析
                        for (int i = 0; i < classes.size(); i++)
                        {
                            if (classes[i] == ObjectType::EYE)
                            {
                                //把目标名称、xmin,ymin,xmax,ymax写入txt
                                int x = objects[i].x;
                                int y = objects[i].y;
                                int w = objects[i].width;
                                int h = objects[i].height;
    
                                fprintf(f, "%s %d %d %d %d", "eye", x, y, w, h);//写入目标名和目标位置
                                fprintf(f, "%s", "\n"); //写入换行
                            }
    
                            if (classes[i] == ObjectType::CLOSED)
                            {
                                //把目标名称、xmin,ymin,xmax,ymax写入txt
                                int x = objects[i].x;
                                int y = objects[i].y;
                                int w = objects[i].width;
                                int h = objects[i].height;
    
                                fprintf(f, "%s %d %d %d %d", "closed", x, y, w, h);//写入目标名和目标位置
                                fprintf(f, "%s", "\n"); //写入换行
                            }
    
                            if (classes[i] == ObjectType::HAND)
                            {
                                //把目标名称、xmin,ymin,xmax,ymax写入txt
                                int x = objects[i].x;
                                int y = objects[i].y;
                                int w = objects[i].width;
                                int h = objects[i].height;
    
                                fprintf(f, "%s %d %d %d %d", "hand", x, y, w, h);//写入目标名和目标位置
                                fprintf(f, "%s", "\n"); //写入换行
                            }if (classes[i] == ObjectType::MOUTH)
                            {
                                //把目标名称、xmin,ymin,xmax,ymax写入txt
                                int x = objects[i].x;
                                int y = objects[i].y;
                                int w = objects[i].width;
                                int h = objects[i].height;
    
                                fprintf(f, "%s %d %d %d %d", "mouth", x, y, w, h);//写入目标名和目标位置
                                fprintf(f, "%s", "\n"); //写入换行
                            }
                        }
                    }
                }
            }
        }
    
        fclose(f);
        return 0;
    }

     

     

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os, h5py, cv2, sys, shutil
    import numpy as np
    from xml.dom.minidom import Document
    
    rootdir = "F:/zidongbiaozhuSample"
    convet2yoloformat = True
    convert2vocformat = True
    #resized_dim = (48, 48)
    
    # 最小取20大小的脸,并且补齐
    minsize2select = 1
    usepadding = True
    
    
    
    def convertimgset(img_set="train"):
        imgdir = rootdir + "/dmsImg"
        gtfilepath = rootdir + "/dms20190605.txt"
    
        #imagesdir = rootdir + "/images"
        vocannotationdir = rootdir + "/dmsXml"
        #labelsdir = rootdir + "/labels"
    
        #if not os.path.exists(imagesdir):
            #os.mkdir(imagesdir)
        #if convet2yoloformat:
            #if not os.path.exists(labelsdir):
                #os.mkdir(labelsdir)
        if convert2vocformat:
            if not os.path.exists(vocannotationdir):
                os.mkdir(vocannotationdir)
    
        index = 0
        with open(gtfilepath, 'r') as gtfile:
            while (True):  # and len(faces)<10
                filename = gtfile.readline()[:-1]
                if (filename == ""):
                    break
                sys.stdout.write("\r" + str(index) + ":" + filename + "\t\t\t")
                sys.stdout.flush()
                imgpath = imgdir + "/" + filename
                img = cv2.imread(imgpath)
    
                if img is None:
                    bboxCnt = int(gtfile.readline())
                    for i in range(bboxCnt):
                        line_read = gtfile.readline()
                    continue
    
                if not img.data:
                    continue
    
                #imgheight = img.shape[0]
                #imgwidth = img.shape[1]
                #maxl = max(imgheight, imgwidth)
    
                #paddingleft = (maxl - imgwidth) >> 1
                #paddingright = (maxl - imgwidth) >> 1
                #paddingbottom = (maxl - imgheight) >> 1
                #paddingtop = (maxl - imgheight) >> 1
                #saveimg = cv2.copyMakeBorder(img, paddingtop, paddingbottom, paddingleft, paddingright, cv2.BORDER_CONSTANT,value=0)
                #showimg = saveimg.copy()
    
                numbbox = int(gtfile.readline())
                bboxes = []
                bnames=[]
                for i in range(numbbox):
                    line_read = gtfile.readline()
                    line_cor = line_read.strip().split(" ")
                    obj_name = line_cor[0]
                    #line = line_cor[1:5]
                    line = list(map(int,line_cor[1:5]))
    
                    if (int(line[3]) <= 0 or int(line[2]) <= 0):
                        continue
                    #x = int(line[0]) + paddingleft #左上角顶点x
                    x = int(line[0])
                    #y = int(line[1]) + paddingtop #左上角顶点y
                    y = int(line[1])
                    #width = int(line[2]) - int(line[0]) + 1 #宽度
                    width = int(line[2])
                   #height = int(line[3]) - int(line[1])+ 1 #高度
                    height = int(line[3])
                    bbox = (x, y, width, height)
                    #x2 = x + width
                    #y2 = y + height
                    # face=img[x:x2,y:y2]
                    if width >= minsize2select and height >= minsize2select:
                        bboxes.append(bbox)
                        bnames.append(obj_name)
                        #cv2.rectangle(showimg, (x, y), (x2, y2), (0, 255, 0))
                        # maxl=max(width,height)
                        # x3=(int)(x+(width-maxl)*0.5)
                        # y3=(int)(y+(height-maxl)*0.5)
                        # x4=(int)(x3+maxl)
                        # y4=(int)(y3+maxl)
                        # cv2.rectangle(img,(x3,y3),(x4,y4),(255,0,0))
                    #else:
                        #cv2.rectangle(showimg, (x, y), (x2, y2), (0, 0, 255))
    
    
                #filename = filename.replace("/", "_")
                if len(bboxes) == 0:
                    print ("warrning: no face")
                    continue
    
                #cv2.imwrite(imagesdir + "/" + filename, saveimg)
    
                #if convet2yoloformat:
                    #height = saveimg.shape[0]
                    #width = saveimg.shape[1]
                    #txtpath = labelsdir + "/" + filename
                    #txtpath = txtpath[:-3] + "txt"
                    #ftxt = open(txtpath, 'w')
                    #for i in range(len(bboxes)):
                        #bbox = bboxes[i]
                        #xcenter = (bbox[0] + bbox[2] * 0.5) / width
                        #ycenter = (bbox[1] + bbox[3] * 0.5) / height
                        #wr = bbox[2] * 1.0 / width
                        #hr = bbox[3] * 1.0 / height
                        #txtline = "0 " + str(xcenter) + " " + str(ycenter) + " " + str(wr) + " " + str(hr) + "\n"
                        #ftxt.write(txtline)
                    #ftxt.close()
    
    
    
                if convert2vocformat:
                    xmlpath = vocannotationdir + "/" + filename
                    xmlpath = xmlpath[:-3] + "xml"
                    doc = Document()
                    annotation = doc.createElement('annotation')
                    doc.appendChild(annotation)
                    folder = doc.createElement('folder')
                    folder_name = doc.createTextNode('widerface')
                    folder.appendChild(folder_name)
                    annotation.appendChild(folder)
                    filenamenode = doc.createElement('filename')
                    filename_name = doc.createTextNode(filename)
                    filenamenode.appendChild(filename_name)
                    annotation.appendChild(filenamenode)
                    source = doc.createElement('source')
                    annotation.appendChild(source)
                    database = doc.createElement('database')
                    database.appendChild(doc.createTextNode('wider face Database'))
                    source.appendChild(database)
                    annotation_s = doc.createElement('annotation')
                    annotation_s.appendChild(doc.createTextNode('PASCAL VOC2007'))
                    source.appendChild(annotation_s)
                    image = doc.createElement('image')
                    image.appendChild(doc.createTextNode('flickr'))
                    source.appendChild(image)
                    flickrid = doc.createElement('flickrid')
                    flickrid.appendChild(doc.createTextNode('-1'))
                    source.appendChild(flickrid)
                    owner = doc.createElement('owner')
                    annotation.appendChild(owner)
                    flickrid_o = doc.createElement('flickrid')
                    flickrid_o.appendChild(doc.createTextNode('widerFace'))
                    owner.appendChild(flickrid_o)
                    name_o = doc.createElement('name')
                    name_o.appendChild(doc.createTextNode('widerFace'))
                    owner.appendChild(name_o)
                    size = doc.createElement('size')
                    annotation.appendChild(size)
                    width = doc.createElement('width')
                    #width.appendChild(doc.createTextNode(str(saveimg.shape[1])))
                    width.appendChild(doc.createTextNode(str(img.shape[1])))
                    height = doc.createElement('height')
                    #height.appendChild(doc.createTextNode(str(saveimg.shape[0])))
                    height.appendChild(doc.createTextNode(str(img.shape[0])))
                    depth = doc.createElement('depth')
                    #depth.appendChild(doc.createTextNode(str(saveimg.shape[2])))
                    depth.appendChild(doc.createTextNode(str(img.shape[2])))
                    size.appendChild(width)
                    size.appendChild(height)
                    size.appendChild(depth)
                    segmented = doc.createElement('segmented')
                    segmented.appendChild(doc.createTextNode('0'))
                    annotation.appendChild(segmented)
    
                    for i in range(len(bboxes)):
                        bbox = bboxes[i]
                        objects = doc.createElement('object')
                        annotation.appendChild(objects)
                        object_name = doc.createElement('name')
                        bnames_var = str(bnames[i])
    
                        object_name.appendChild(doc.createTextNode(bnames_var))
                        objects.appendChild(object_name)
                        pose = doc.createElement('pose')
                        pose.appendChild(doc.createTextNode('Unspecified'))
                        objects.appendChild(pose)
                        truncated = doc.createElement('truncated')
                        truncated.appendChild(doc.createTextNode('1'))
                        objects.appendChild(truncated)
                        difficult = doc.createElement('difficult')
                        difficult.appendChild(doc.createTextNode('0'))
                        objects.appendChild(difficult)
                        bndbox = doc.createElement('bndbox')
                        objects.appendChild(bndbox)
                        xmin = doc.createElement('xmin')
                        xmin.appendChild(doc.createTextNode(str(bbox[0])))
                        bndbox.appendChild(xmin)
                        ymin = doc.createElement('ymin')
                        ymin.appendChild(doc.createTextNode(str(bbox[1])))
                        bndbox.appendChild(ymin)
                        xmax = doc.createElement('xmax')
                        xmax.appendChild(doc.createTextNode(str(bbox[0] + bbox[2])))
                        bndbox.appendChild(xmax)
                        ymax = doc.createElement('ymax')
                        ymax.appendChild(doc.createTextNode(str(bbox[1] + bbox[3])))
                        bndbox.appendChild(ymax)
                    f = open(xmlpath, "w")
                    f.write(doc.toprettyxml(indent=''))
                    f.close()
                    # cv2.imshow("img",showimg)
                # cv2.waitKey()
                index = index + 1
    
    
    def convertdataset():
        img_sets = ["train"]
        for img_set in img_sets:
            convertimgset(img_set)
    
    
    if __name__ == "__main__":
        convertdataset()

     

    转载于:https://www.cnblogs.com/crazybird123/p/11023154.html

    展开全文
  • EasyLabel是上海易渊图像技术有限公司开发的面向机器视觉行业的深度学习样本标注软件。EasyLabel的常规功能免费使用。 EasyLabel具有以下特点: 1) 式样管理,可以同时管理多个不同的样本标注需求; 2) 支持全图...
  • EasyLabel是上海易渊图像技术有限公司开发的面向机器视觉行业的深度学习样本标注软件。EasyLabel的常规功能免费使用。 EasyLabel具有以下特点: 1) 式样管理,可以同时管理多个不同的样本标注需求; 2) 支持...
  • 遥感解译实验样本标注规范

    千次阅读 2018-02-25 22:20:36
    遥感解译实验样本标注规范为了进行遥感解译实验,现进行全地物类别产品实验,需要提供大量的样本数据,故对GF1-WFV(16米分辨率)影像进行样本的标注,用于深度学习技术的训练学习阶段。一 实验所用软件ENVI5.1二 ...

    遥感解译实验样本标注规范

    为了进行遥感解译实验,现进行全地物类别产品实验,需要提供大量的样本数据,故对GF1-WFV16米分辨率)影像进行样本的标注,用于深度学习技术的训练学习阶段。

    实验所用软件

    ENVI5.1

    训练样本标注

    2.1 训练样本标注过程

    打开ENVI5.1“Tools”中的ENVI Classic”。

     

     

    加载需要处理的影像,并在bands list选择"RGB"显示模式,分别选择432波段进行显示;

     

    image窗口中的Overlay打开“Region of  Interest”功能,弹出“ROI  tools”窗口,分别如下图;

     

    关于ROI  tools”窗口

    选择New Region”建立新的类别区域。在ROI Tool的工具栏中的ROI_Type中可以选择PolygonPolylinePointRectangleEllipse等类型,默认为Polygion

    Window选项处的imageScrollZoom等代表进行感兴趣区选择的窗口。一般建议较大范围的在Image窗口进行,较小范围的为了保证边界准确性在Zoom窗口进行勾画。

    勾画方式,选择Polygion时,单击左键可以进行直线多边形选择,也可长按左键进行勾画。

    只进行云覆盖数据标注,将云样本标为region 1 ,除云外的其它地物标为region 2

    l 样本选取标准

    所有样本勾画完成后,选择ROI Tool的工具栏中File中的“Save Rois”,弹出以下界面。

     

    选择所需要的勾画的感兴趣区类别,并选择输出路径进行输出。

    选择完ROI之后,在主工具栏中选择”Classification”---”Supervised”---”Maximum Likelihood”

     

    Classification Input File”对话框中选择需要进行监督分类的影像,点击”OK”.

     

    Maximum Likelihood Parameters“对话框中进行参数设置,参数可以选择默认,并选择输出结果路径,进行分类结果输出。

     

    image框中选择“Overlayà”Claasification…”,在弹出的Interractive Class Tool Input File“对话框中选择分类数据覆盖在影像上。

     


     

    弹出Interactive Class Tool“对话框,其中Active class处选择的类别为可编辑的类别,在对应类别前的ON处打钩,说明将此类别叠加显示在影像上。单击某一个颜色块为激活此类别图层,默认激活“Unclassified”图层。

     

     

    点击Interactive Class Tool“对话框的Edit,其中“Polygon Add to Class”为通过勾画多边形的方式增加激活类别的样本,“Polygon Delete from Class”是通过勾画多边形的方式删除多分出来的激活类别样本。

     

    选择编辑模式之后出现edit window”选项,可以选择边界的窗口。例如下图为显示Region 2类别,激活绿色图层,在image窗口进行编辑。

    可以先显示及启动Region 2类别,选择“Polygon Add to Class”,此时绿色外的应该都属于云,通过勾画不属于云的区域,修改错分区域。

         

      

         

    再显示及启动Region 1 类别,同样也选择“Polygon Add to Class”,此时红色外的应全为其他地物,通过勾画属于云的区域来修改漏分区域。

     


     

     

    由于测试样本要保证样本数据的精准性,所以建议对于较细节的增加和删减的操作都在zoom框内进行。

    2.2 训练样本标注标准

    总体原则:保证所勾画样本的正确性,同时尽量保证样本全,误差控制在10%以内,对于太细节的东西可以不用修改。

     

    展开全文
  • 详情目前,医学影像的人工智能研究正高速发展,但还没有专用于医学影像样本标注的软件。基于此,本公司开发了该软件,该软件具有以下功能特色:1. 可同时批量打开不同序列或不同参数的两组DICOM图像,进行同部位对比...

    详情

    目前,医学影像的人工智能研究正高速发展,但还没有专用于医学影像样本标注的软件。基于此,本公司开发了该软件,该软件具有以下功能特色:

    1. 可同时批量打开不同序列或不同参数的两组DICOM图像,进行同部位对比;

    2. 可根据感兴趣形状进行勾画(其它软件只能勾画规则图形),同时可对感兴趣进行标注;

    3. 可计算与显示任意形状的感兴趣区的均值、标准差、最大值、最小值、面积、体积以利于进行统计分析;

    4. 可批量将勾画的标注矩阵生产mask,并直接保存为BMP格式文件;

    5. 可将未完成的勾画保存为mat格式文件,下次可导入继续完成勾画;

    6. 可删除、回退错误勾画曲线;

    7. 可批量将DICOM转为BMP图像;

    8. 可一键图像增强。

    限时试用版下载链接:

    链接:https://pan.baidu.com/s/1uOeLsfMRqVMYeS4u6hTr_g

    提取码:59ur

    初次安装需向我司索要注册码,邮箱bruce_xiatian@163.com,发邮件时请注明单位与姓名,也可直接拨打主页电话15618231889进行咨询。

    展开全文
  • 用于生成机器学习正样本标注工具,内含使用说明和图片格式批量转换工具(bat文件)
  • 基于上一节实现的web界面的样本标注系统做人工标注,然后详细讲解如何对标注好的样本做挖掘和分析,并根据分析结果提取出最优代表性的特征,用于后面的训练 请尊重原创,转载请注明来源网站www.shareditor.com以及...


    基于上一节实现的web界面的样本标注系统做人工标注,然后详细讲解如何对标注好的样本做挖掘和分析,并根据分析结果提取出最优代表性的特征,用于后面的训练

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

    多类分类问题解法

     

    解法一:通过一系列两类分类问器并将它们组合到一起形成多类分类器

    解法二:将多个分类面的参数求解合并到一个最优化问题中

     

    我们利用解法一,通过多个两类分类问题分别计算

     

    人工标注

     

    这部分工作完全是基于个人的判断,逐个文章进行标注,如果判断文章属于纯技术类,则把isTec标记为yes,如果判断为鸡汤文,则把isSoup标记为yes,其他两类也一样

    经过我耗时近一小时的纯手工标注,最终每类文章数为:

    select sum(isTec), sum(isSoup), sum(isMR), sum(isNews) from CrawlPage;
    
    
    sum(isTec)    sum(isSoup)    sum(isMR)    sum(isNews)
    31    98    69    240

     

    切词并保存

     

    下面我要把这四个类别的所有文章做切词,为了调试需要,我们把切词之后的中间结果保存在数据库中,以便重复调试不用每次都做切词操作,所以我们在php的CrawlPage实体中增加如下变量:

    /**
     * @var text
     * @ORM\Column(name="segment", type="text", nullable=true)
     */
    private $segment;

    执行

    php app/console doctrine:schema:update --force

    后数据库会多处一列

      `segment` longtext COLLATE utf8_unicode_ci,

     

    创建我们的feature_extract.py,内容如下:

    # coding:utf-8
    
    import sys
    from sklearn.feature_extraction.text import CountVectorizer
    from sklearn.feature_extraction.text import TfidfTransformer
    import jieba
    from jieba import analyse
    import MySQLdb
    
    conn = MySQLdb.connect(host="127.0.0.1",user="myuser",passwd="mypasswd",db="mydatabase",charset="utf8")
    
    def get_segment():
        cursor = conn.cursor()
        sql = "select id, content from CrawlPage"
        cursor.execute(sql)
        jieba.analyse.set_stop_words("stopwords.txt")
        for result in cursor.fetchall():
            id = result[0]
            content = result[1]
            seg_list = jieba.cut(content)
            line = ""
            for str in seg_list:
                line = line + " " + str
            line = line.replace('\'', ' ')
            sql = "update CrawlPage set segment='%s' where id=%d" % (line, id)
            try:
                cursor.execute(sql)
                conn.commit()
            except Exception,e:
                print line
                print e
                sys.exit(-1)
        conn.close()
    
    if __name__ == '__main__':
        get_segment();

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

    这里我们对每一篇文章做切词,并且把切词后的结果存储到segment列中

    注意:为了避免sql的语法问题,需要把文章里的单引号'\''去掉,这里我替换成了空格,方便切词识别

     

    计算tf-idf

     

    继续编辑feature_extract.py,增加如下内容:

    def feature_extract():
        cursor = conn.cursor()
        category={}
        category[0] = 'isTec'
        category[1] = 'isSoup'
        category[2] = 'isMR'
        category[3] = 'isMath'
        category[4] = 'isNews'
    
        corpus=[]
        for index in range(0, 5):
            sql = "select segment from CrawlPage where " + category[index] + "=1"
            cursor.execute(sql)
            line = ""
            for result in cursor.fetchall():
                segment = result[0]
                line = line + " " + segment
            corpus.append(line)
    
        conn.commit()
        conn.close()
    
        vectorizer=CountVectorizer()
        csr_mat = vectorizer.fit_transform(corpus)
        transformer=TfidfTransformer()
        tfidf=transformer.fit_transform(csr_mat)
        word=vectorizer.get_feature_names()
        print tfidf.toarray()
    
    if __name__ == '__main__':
        #get_segment();
        feature_extract();

    执行后输出:

    [[ 0.          0.          0.         ...,  0.          0.          0.        ]
     [ 0.          0.          0.         ...,  0.          0.          0.        ]
     [ 0.00670495  0.00101195  0.00453306 ...,  0.          0.          0.        ]
     [ 0.          0.00164081  0.         ...,  0.          0.          0.        ]
     [ 0.01350698  0.0035783   0.         ...,  0.0003562   0.0003562  0.00071241]]

     

    特征提取

     

    我们采取分别对每一类看做一个两类分类问题来求解,所以对这5大类别分别做特征提取,提取的方式就是提取每一类中tf-idf最大的n个特征,首先我们先把全部特征输出出来

     

        for index in range(0, 5):
            f = file("tfidf_%d" % index, "wb+")
            for i in np.argsort(-tfidf.toarray()[index]):
                if tfidf.toarray()[index][i] > 0:
                    f.write("%f %s\n" % (tfidf.toarray()[index][i], word[i]))
            f.close()

    这已经按照tf-idf从大到小排序了,所以从生成的5个文件里前n行就能拿到我们需要的n个特征啦

     

    下一节我们将通过提取出来的特征来对测试样本进行测试

    展开全文
  • TSVM 常见的解决未标注样本的方法有EM (Expectation Maximization) 算法 ,协同训练法,Transductive SVM 方法及最大熵判别法等. 原文链接:http://blog.sina.com.cn/s/blog_4c98b9600100094l.html 下面...
  • matlab GUI 简单样本标注操作

    千次阅读 2016-09-12 22:39:17
    对于深度学习来说,一般要设计成熟稳定的扣样本程序。我见过的多是Python,C++ 和 Qt 等制作的抠图程序。当需要对样本抠图程序简要修改以符合最新研究进展的代码测试时,其实也可以做一个简单的matlab GUI 界面,...
  • labelImghttps://github.com/tzutalin/labelImgDownload and setup Python 2.6 or later, PyQt4 and install lxml.PyQt4查看python版本我的是2.7.8 32位下载32位的PyQt4...
  • 要想实现对新发现的公众号文章做自动分类,需要对样本做训练,而样本属于哪一类别是需要我们做人工标注的,直接操作数据库非常不方便,我想到了我们的网站后台管理系统,直接把样本数据整合进来就可以方便标注了 ...
  • 在进行NLP的时候,往往我们的训练集已标注样本是有限,有大量的样本是没有标注的。这个时候的解决办法是对无标注样本进行训练。一般采用的是语言模型,这样训练得到的参数是context-sensitive的。语言模型具体...
  • Photoshop CS6安装以及破解教程(注意:安装的时候一定要断网,安装完毕后一定要运行一次) windows下Anaconda的安装与配置正解(Anaconda入门教程)(安装过程中选择所有用户,一直打钩就行。安装完毕之后,打开...
  • ...
  • 对上述数学原理的过程好奇的人来说,该计数过程可以采取以下形式进行理解: 我们也鼓励通过阅读我们的原论文来理解符号的含义,这里面的中心思想可以理解成:当一个样本的预测概率大于每个类的阈值时,我们有信心将...
  • 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本
  • 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本
  • 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本
  • 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本
  • 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本 腾讯验证码标注样本
  • 上一个专栏完成了基于哨兵2数据的样本制备工作,前后花了近两个星期...下面是样本标注文件和原图的示例图。 这里展示一下我的labelme标注出来的Json文件的格式。 好了不说了吧,直接上代码,图像增强的知识我这..
  • 标注样本

    2020-12-06 22:01:28
    <div><p>你好,我想问一下你的106个点的标注是用什么算法标注的,准确率大概有多高</p><p>该提问来源于开源项目:szad670401/HyperLandmark</p></div>
  • python实现labelme样本自动标注 前言 说明 正文 一、 json文件简介及相关API: 二、 特征区域检测及相应API 三、 计算偏移量以及标注框的新的点集 四、 json文件数据其他修改 前言 公司...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,564
精华内容 625
关键字:

样本标注