精华内容
下载资源
问答
  • 新视野大学英语(第三版)第四册读写教程答案腾讯文档: https://docs.qq.com/doc/DRUh0RHZ0V1hUdG9n 如何下载腾讯在线文档?如何将腾讯在线文档导出为本地Word文档(.docx) ...以下是我期末复习整理部分单元的题目的...
     
    

    以下是我期末复习整理部分单元的题目的翻译:
    第3版新视野大学英语4读写教程
    Unit 1、2、3、5、6 Section A word in use 和Section B Sentence structure 部分的翻译

    Unit 1 A

    Text A: Words in use

    1. crumbled
      crumble 英/'krʌmb(ə)l/ vi. 崩溃,瓦解,消失
      As the gender barriers crumbled, the number of women working as lawyers, doctors, or bankers began to increase significantly from the mid-20th century.
      随着性别障碍的瓦解,从20世纪中期开始,从事律师、医生或银行家工作的女性数量开始显著增加。
    2. discern 英/dɪ’sɜːn/ vt. 看出,觉察出,辨明
      With the data collected each year, the owner of the shop can discern customer trends and how things like weather and economic indicators affect sales performance.
      通过每年收集的数据,店主可以了解顾客的趋势,以及天气、经济指标之类的事物对销售业绩的影响。
    3. surpass 英/sə’pɑːs/ vt. 超过,胜过
      His supervisor pushes and motivates him in such a positive manner that he is not only able to reach but to surpass his personal goals.
      他的上司以这样一种积极的方式推动和激励他,使他不仅能够达到而且能够超越自己的目标。
      supervisor 英/'suːpəvaɪzə;'sjuː/ n. 监督人,指导者;[管理] 管理人;检查员
    4. shrewd 英/ʃ ruː d/ a. 精明的,机敏的,准确的,英明的
      He is a man with a shrewd business sense. He has built his initial investment into a substantial and even excessively large fortune.
      他是个精明的生意人。他把最初的投资变成了一笔可观的、甚至是巨额的财富。
    5. conversion 英/ kən’vɜːʃ(ə) n/ n. 转变,改造,转换
      The conversion of nuclear radiation directly into electricity was an exciting possibility that was being vigorously explored in many laboratories in the 1950s.
      将核辐射直接转化为电能是20世纪50年代许多实验室正在积极探索的一种令人兴奋的可能性。
    6. distort 英/dɪ’stɔːt/ vt. 歪曲,曲解
      I was not only shocked but also disgusted that the report tried to distort the scientific facts in such a manner that even some highly-educated people were fooled.
      我不仅感到震惊,而且感到恶心,因为这份报告试图歪曲科学事实,甚至一些受过高等教育的人也被愚弄了。
    7. radiant 英/'reɪdɪənt/ a. 容光焕发的,喜悦的
      Sixty-two and blessed with his mother’s skin, the fisherman had withstood a lifetime of exposure to the sun and looked as radiant as a man in his forties.
      62岁的渔夫拥有母亲的皮肤,他一生都经受住了日晒,看上去像一个四十多岁的男人一样容光焕发。
    8. ingenious 英 /ɪn’dʒiːnɪəs/ a. 有独创性的,别出心裁的,构思巧妙的
      French educator Louis Braille invented a simple but ingenious code which has had an impact on the lives of generations of people who are blind.
      法国教育家路易斯·布莱叶发明了一种简单而巧妙的密码,这种密码对几代盲人的生活产生了影响。
    9. stumped
      stump 英 /stʌmp/ v. 使困惑,难倒
      The senators didn’t expect us to ask such tough questions, and when we finally did, they got stumped and didn’t know what to say.
      参议员们没想到我们会问这么棘手的问题,当我们终于提出时,他们被难住了,不知该说些什么。
    10. proposition 英 /prɒpə’zɪʃ(ə)n/ n. 提议,建议,主张,观点,看法
      This newly established university supports the proposition that a more diverse higher education system is desirable since it would enhance opportunities for lifelong learning.
      这所新成立的大学支持这样的观点:更多样化的高等教育体系是可取的,因为它将增加终身学习的机会。

    Unit 1 B

    Sentence structure

    1. These reports differ from his earlier work in that they offer solutions to public pension problems.
      这些报告不同于他早期的工作,因为它们为公共养老金问题提供了解决方案。
    2. These forums are unique in that they provide a venue for those with varying perspectives to have an open and honest dialog.
      这些论坛的独特之处在于,它们为不同观点的人提供了一个公开和诚实对话的场所。
      venue 英 /'venjuː/ n. 聚会地点;举行场所;犯罪地点;发生地点;(英格兰律)审判地(指郡或区)
    3. Social support has been found to act as a stress reducer in that it protects people in crisis from both physical and psychological problems.
      社会支持被发现是一种减压的方法,因为它可以保护处于危机中的人们免受身体和心理问题的伤害。

    Unit 2 A

    Text A: Words in use

    1. deficient 英 /dɪ’fɪʃ(ə)nt/ a.不足的,有缺陷的,缺乏的,不足的。
      We need to improve the quality of education so that our children will not leave school deficient in literary and reasoning skills.
      我们需要提高教育质量,使我们的孩子不会离开缺乏文学和推理技能的学校。
    2. prosecution 英 /prɒsɪ’kjuːʃ(ə)n/ n. 起诉,指控
      In a society governed by the rule of law,every citizen is subject to possible prosecution if he violates the law.
      在一个由法治的社会,每个公民都可能受到起诉,如果他违反了法律。
    3. outrage 英 /'aʊtreɪdʒ/ n.义愤,愤慨,震怒
      The pay gap between average workers and top corporate officers has led to pubic outrage as executives receive large packages despite falling share prices.
      普通员工与企业高管之间的薪酬差距,已引发公众的愤怒,因为尽管股价不断下跌,高管们仍能拿到巨额薪酬。
    4. appeased
      appease 英 /ə’piːz/ vt. 平息,安抚,抚慰
      The delicious meal appeased our hunger and made us feel warm again after having walked in the snow all day.
      这顿美餐使我们的饥饿感减轻了,让我们在雪中走了一整天后又感到温暖。
    5. conformity 英 /kən’fɔːmɪtɪ/ n. 遵守;符合;一致;
      The military insists on conformity in many areas,for example, dress and haircut,with the primary objective of promoting group unity.
      军方坚持整合在许多领域,例如,服装和发型,促进集团统一的主要目标。
    6. strand 英 /strænd/ n. (线、绳、头发等的)股,缕
      My daughter used to play with the dog by taking a strand of its hair and then spending a long time rubbing, combing and twisting it.
      我女儿过去常和这只狗玩耍,把它的一缕头发剪下来,然后花很长时间揉搓、梳理和捻。
    7. complement 英 /'kɒmplɪm(ə)nt/ vt. 与……相配,与……互补
      When she left for the party,she took great care to make her necklace and shoes complement her dress.
      当她动身去聚会时,她非常认真地去试图把她的项链和鞋子与她的衣服配套起来。
    8. transient 英 /'trænzɪənt/ a. 短暂的,临时的
      It was necessary to provide living places for transient immigrants passing through the area on their way to more permanent dwellings.
      有必要为经过这一地区前往更永久住所的临时移民提供居住场所。
    9. appliance /əˈplaɪəns/ n. 家用电器
      appliances
      They had just moved in,so they needed to buy a number of kitchen appliances, including a microwave oven, a toaster,and a coffee maker.
      他们刚刚搬进来的,所以他们需要购买一些厨房电器,包括微波炉,烤面包机,咖啡机。
    10. outfit /ˈaʊtfɪt/ n. (尤指在特殊场合穿的)全套服装
      She wanted a beautiful and elegant outfit to attend the wedding of a friend, but couldn’t find anything satisfactory in the nearby shops.
      她想要一套漂亮雅致的衣服去参加一个朋友的婚礼,但在附近的商店里找不到满意的东西。

    Unit 2 B

    Sentence structure

    1. What they were worried about was more than just the cost of the machine itself. It would be expensive to keep it up too.
      他们不仅担心购买机器本身的成本,也担心维护起来机器会很昂贵。
    2. The island is more than just a place to visit for fun. It is also a center of the shipbuilding industry in this region.
      这个岛不仅是一个好玩的地方,也是该地区造船业的中心。
    3. For me and the kids, Mother Earth News is more than just a magazine that introduces various kinds of healthy diets; it is a friend who gives us comfort!
      对我和孩子们来说,地球母亲新闻不仅仅是一本介绍各种健康饮食的杂志;也是能给我们安慰的朋友!

    Unit 3 A

    Text A: Words in use

    1. exquisite 英 /'ekskwɪzɪt; ɪk’skwɪzɪt; ek-/ a. 精致的,精美的
      The curtains changed the atmosphere of the house completely and made it into a place of exquisite beauty.
      窗帘完全改变了房子的气氛,使它成为一个优美的地方。
    2. disperse 英 /dɪ’spɜːs/ v. (使)分散,驱散
      dispersed
      As the sun dispersed the clouds, we enjoyed our afternoon of playing cards in the forest under the clear sky and observing the most spectacular view I have ever seen in my life.
      当太阳驱散乌云时,我们在晴朗的天空下的森林里打牌,欣赏着我从未见过的最壮观的景色。
    3. decentralize 英 /di:'sentrə’laɪz/ v. (使)(政府、组织等的部门)分散
      decentralized
      The big company decentralized their operations last year and opened several regional offices in the country to meet the needs of the market.
      这家大公司去年分散了业务,并在该国开设了几个地区办事处,以满足市场的需要。
    4. deduce /dɪ’djuːs/ vt. 推论,推断;演绎出
      It is not easy to deduce a trend of growth from the available facts since they are quite scarce and not that convincing.
      从现有的事实推断增长趋势是不容易的,因为它们非常稀少,也没有那么令人信服。
      scarce /skeəs/adj. 缺乏的,不足的;稀有的
    5. fixture /'fɪkstʃə; -tjə/ n. 设备;固定装置;固定于某处不大可能移动之物
      Formerly found only in large industrial applications, microwave ovens now have become a standard fixture of most modern kitchens.
      以前只在大型工业应用中被发现,现在微波炉已经成为大多数现代厨房的标准设备。
    6. frugality /fruː’gælɪtɪ/ n. 俭省,节俭
      He calls on the public to save in everyday life and believes that frugality is the key to battling a culture that rewards mindless consumption.
      他呼吁公众在日常生活中储蓄,并相信节俭是对抗鼓励盲目消费的文化的关键。
    7. administrate /əd’mɪnɪstreɪt/ vt. 管理;经营,实施
      He is suitable for the position as he is young enough to understand what the teenagers think but old enough to administrate their programs.
      他很适合这个职位,因为他足够年轻,能够理解青少年的想法,但足够成熟,能够管理他们的项目。
    8. disjointed /dɪs’dʒɒɪntɪd/ adj. 脱节的;杂乱的;脱臼的
      When asked about her whereabouts at 9 o’clock that night, she gave a rather disjointed response, which caught the detective’s attention.
      当被问及那天晚上9点她在哪里时,她回答得相当不连贯,引起了侦探的注意。
    9. revive /rɪ’vaɪv/ vi. 复兴;复活;苏醒;恢复精神
      Reviving
      Reviving the stalled economy and sticking to promises to bring the deficit down next year is proving to be the principal test for the new president.
      复苏停滞的经济,并坚持承诺明年将削减赤字,这将成为新总统的主要考验。
      stall vi. 停止,停转;拖延
    10. elapse /ɪ’læps/ vi. 消逝;时间过去
      A considerable period of time has to elapse before the effects of such security measures as closed-circuit television cameras and cell-phone monitoring become evident in reducing crimes.
      闭路电视摄像机和手机监控等安全措施在减少犯罪方面的效果还需要相当长一段时间才能显现出来。

    Unit 3 B

    Sentence structure

    1. If he goes on taking ererything passively like this, he will never be confident enough to say NO to those kids who are fond of teasing him.
      如果他继续这样被动地接受一切,他将永远不会有足够的信心对那些喜欢戏弄他的孩子说不。
      tease /tiːz/ vt. 取笑;戏弄;梳理;欺负;强求;使起毛
    2. I know I’m already 80, but with a heart like mine, I will never be old enough to stop laughing at funny words.
      我知道我已经80岁了,但是有一颗像我这样的心,我永远不会老到停止对有趣的话发笑的地步。
    3. Although I was never fortunate/lucky enough to meet your grandmother, I’ve enjoyed hearing you tell stories about her and seeing your face light up when talking about her.
      虽然我从未有幸见到你的祖母,但我很高兴听到你讲述她的故事,看到你谈起她时面露喜色。

    Unit 5 A

    Text A: Words in use

    1. fabricate /'fæbrɪkeɪt/ vt. 制造;伪造;装配
      Although he was not a legal expert, he knew it would not be proper to fabricate anything to mislead the public.
      虽然他不是法律专家,但他知道编造任何误导公众的东西都是不恰当的。

    2. nominal [ˈnɒmɪnl] adj. 名义上的; 微不足道的; 票面上的;
      He does not work full time there, but he has been the nominal head of the organization’s scholarship program for five years.
      他没有在那里全职工作,但他已经担任该组织奖学金项目的名义负责人五年了。

    3. temporal [ˈtempərəl] adj. 时间的; 世俗的; 暂存的;
      As Mark walked the sites on that initial trip of the migrants, he found some important temporal clues — dated bus tickets, shopping receipts and calendars.
      当马克在最初的移民之旅中走访这些网站时,他发现了一些重要的时间线索——注明日期的公共汽车票、购物收据和日历。

    4. reciprocal /rɪ’sɪprək(ə)l/ adj. 互惠的;相互的;倒数的,彼此相反的
      In urban planning, it is important to take into consideration the reciprocal influence between the transportation network and other facilities, for example shopping centers and medical centers.
      在城市规划中,重要的是考虑交通网络和其他设施之间的相互影响,如购物中心和医疗中心。

    5. denote /dɪ’nəʊt/ vt. 表示,指示
      denotes
      The label “Smart Choices” on the front of food packages usually denotes products that meet criteria for lower fat, sugar and sodium (钠) content.
      食品包装正面的“明智选择”标签通常表示产品符合低脂肪、低糖和低钠的标准。
      criteria /kraɪ’tɪərɪə/ n. 标准,条件
      sodium /'səʊdɪəm/
      content /kən’tent/ n. 内容,目录;满足;容量

    6. consecutive /kən’sekjʊtɪv/ adj. 连贯的;连续不断的
      The public high school graduation rates in New Mexico and Arizona have been increasing for three consecutive years, thanks to an online program that helps students earn missing credits.
      新墨西哥州和亚利桑那州的公立高中毕业率已经连续三年上升,这要归功于一个在线项目,该项目帮助学生获得缺失的学分。

    7. spectator /spek’teɪtə/ n. 观众;旁观者
      spectators
      In the accident at the air show last week, a pilot and 10 spectators were killed when a fighter plane crashed into the crowd.
      在上周航空展的事故中,一架战斗机撞向人群,造成一名飞行员和10名观众死亡。
      pilot /'paɪlət/ n. 飞行员;领航员

    8. muttering /'mʌtərɪŋ/ n. 独自怨言,喃喃自语
      The mother was not sure where the boys went, but she did hear them muttering something about going out for a movie with friends.
      母亲不知道男孩们去了哪里,但她听到他们嘀咕着要和朋友出去看电影。

    9. composite /'kɒmpəzɪt/ adj. 复合的,合成的;(火车车厢)综合的;(柱式)混合的;菊科的
      This newly released portrait of Planet Earth is actually a composite of several pictures taken earlier this month by a new research satellite.
      这张最新发布的地球照片实际上是本月早些时候由一颗新的研究卫星拍摄的几张照片的合成。

    10. malicious /mə’lɪʃəs/ adj. 恶意的;恶毒的;蓄意的;怀恨的
      You shouldn’t feel insulted. We can assure you he meant to be friendly and there was nothing impolite or malicious in his words.
      你不应该感到受侮辱。我们可以向你保证,他的本意是友好的,他的话中没有任何不礼貌或恶意。

    Unit 5 B

    Sentence structure

    1. If we have enough oil in our own country, why import a large amount from somewhere else every year?
      如果我们自己的国家有足够的石油,为什么每年要从其他地方进口大量的石油呢?
    2. Since video communication through the Internet is convenient, why a time-consuming and expensive flight trip to attend the conference/meeting?
      既然通过互联网进行视频通讯很方便,为什么要花费大量的时间和金钱去乘机票参加会议呢?
    3. Why at a crowded bar so far from home? We can just meet at a restaurant close to where we live.
      为什么要在离家这么远的拥挤的酒吧里呢?我们可以在离我们住处很近的餐馆见面。

    Unit 6 A

    Text A: Words in use

    1. alien /'eɪlɪən/ adj. 外国的;相异的,性质不同的;不相容的;陌生的
      When I first came to this city, everything was alien to me. It took me a long time to adjust myself to the new environment.
      当我第一次来到这座城市时,一切对我来说都是陌生的。我花了很长时间来适应新环境。
    2. optic /'ɒptɪk/ adj. 光学的;视觉的;眼睛的
      Something growing in her brain caused damage to her optic nerve, and doctors thought she would never see again.
      她大脑中生长的一些东西对她的视神经造成了损伤,医生认为她再也见不到东西了。
    3. symmetrical /sɪ’metrɪk(ə)l/ adj. 匀称的,对称的
      The front side of the house has a symmetrical arrangement of windows and door and two windows on each side.
      房子的正面有对称的窗户和门,每一面都有两扇窗户。
    4. lubricate /'luːbrɪkeɪt/ vi. 润滑;涂油;起润滑剂作用
      lubricated
      He cleaned the old machine and lubricated the moving parts with a little mineral oil, hoping that it could work again.
      他清洗了那台旧机器,并用一点矿物油给活动部件上了润滑油,希望它能再次运转。
    5. twinkled
      twinkle /'twɪŋk(ə)l/ v. 闪烁;(眼睛)闪亮,闪闪发光;发亮;轻快移动
      We could tell it was a crisp winter night because, overhead, between the shadows of the buildings, a multitude of stars twinkled.
      我们可以看出这是一个清爽的冬夜,因为头顶上,在建筑物的阴影之间,闪烁着许多星星。
    6. mediator /'miːdɪeɪtə/ n. 调停者;传递者;中介物
      During his work on child protection, he often acts as a mediator between parents and children, making the parents know what they can do and what they cannot do.
      在他的儿童保护工作中,他经常充当父母和孩子之间的调解人,让父母知道他们能做什么和不能做什么。
    7. outpost /'aʊt,post/ n. 前哨;警戒部队;边区村落
      outposts
      Due to safety concerns, the commander ordered his troops to leave their outposts in the mountains and return to their bases in the nearby village.
      出于安全考虑,指挥官命令他的部队离开山区的前哨,返回附近村庄的基地。
    8. traverse /'trævəs; trə’vɜːs/ v. 穿过;来回移动;反驳;阻挠;详细研究;旋转
      traversing
      It’s exciting to travel to a foreign place, no matter whether you’re traversing the wilds of Africa or just making a weekend trip to the countryside.
      到国外旅行是令人兴奋的,不管你是在穿越非洲的荒野,还是只是周末去乡下旅行。
    9. emancipate /ɪ’mænsɪpeɪt/ vt. 解放;释放
      In the 1970s, a number of countries passed laws to protect women’s rights, announcing that they would emancipate women through education and work.
      20世纪70年代,一些国家通过了保护妇女权利的法律,宣布将通过教育和工作解放妇女。
    10. deductive /dɪ’dʌktɪv/ adj. 演绎的;推论的;推断的
      The basic idea of deductive reasoning is that if something is true of a class of things in general, this truth applies to all members of that class.
      演绎推理的基本思想是,如果某件事对某一类事物是真实的,那么这个真理适用于这类事物的所有成员。

    Unit 6 B

    Sentence structure

    1. Her parents could no more persuade her to study maths than they could persuade her to stop wearing skirts and makeup.
      她的父母无法说服她学习数学,就像他们无法说服她停止穿裙子和化妆一样。
    2. I would no more believe any word he said than I would allow myself to be bitten by the same snake twice.
      我不会相信他说的任何话,就像我不会让自己被同一条蛇咬两次一样。
    3. He would no more dare speak before a large audience than he would dare jump off the top of a 20-story building.
      他不敢在一大群观众面前讲话,就像他不敢从20层楼高的楼顶跳下去一样。
    展开全文
  • 图像分割综述

    万次阅读 多人点赞 2019-07-09 22:03:48
    图像分割是计算机视觉研究中的一个经典难题,已经成为图像理解领域关注的一个热点,图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,同时也是图像处理中最困难的问题之一。所谓图像分割...

    本文作者净浩泽,公众号:计算机视觉life,编辑成员

    图像分割是计算机视觉研究中的一个经典难题,已经成为图像理解领域关注的一个热点,图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,同时也是图像处理中最困难的问题之一。所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的说就是在一副图像中,把目标从背景中分离出来。对于灰度图像来说,区域内部的像素一般具有灰度相似性,而在区域的边界上一般具有灰度不连续性。 关于图像分割技术,由于问题本身的重要性和困难性,从20世纪70年代起图像分割问题就吸引了很多研究人员为之付出了巨大的努力。虽然到目前为止,还不存在一个通用的完美的图像分割的方法,但是对于图像分割的一般性规律则基本上已经达成的共识,已经产生了相当多的研究成果和方法。

    本文对于目前正在使用的各种图像分割方法进行了一定的归纳总结,由于笔者对于图像分割的了解也是初窥门径,所以难免会有一些错误,还望各位读者多多指正,共同学习进步。

    传统分割方法

    这一大部分我们将要介绍的是深度学习大火之前人们利用数字图像处理、拓扑学、数学等方面的只是来进行图像分割的方法。当然现在随着算力的增加以及深度学习的不断发展,一些传统的分割方法在效果上已经不能与基于深度学习的分割方法相比较了,但是有些天才的思想还是非常值得我们去学习的。
    1.基于阈值的分割方法
    阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值作比较,最后将像素根据比较结果分到合适的类别中。因此,该方法最为关键的一步就是按照某个准则函数来求解最佳灰度阈值。
    阈值法特别适用于目标和背景占据不同灰度级范围的图。
    图像若只有目标和背景两大类,那么只需要选取一个阈值进行分割,此方法成为单阈值分割;但是如果图像中有多个目标需要提取,单一阈值的分割就会出现作物,在这种情况下就需要选取多个阈值将每个目标分隔开,这种分割方法相应的成为多阈值分割。

    如图所示即为对数字的一种阈值分割方法。
    阀值分割方法的优缺点:

    • 计算简单,效率较高;
    • 只考虑像素点灰度值本身的特征,一般不考虑空间特征,因此对噪声比较敏感,鲁棒性不高。
      从前面的介绍里我们可以看出,阈值分割方法的最关键就在于阈值的选择。若将智能遗传算法应用在阀值筛选上,选取能最优分割图像的阀值,这可能是基于阀值分割的图像分割法的发展趋势。
      2.基于区域的图像分割方法
      基于区域的分割方法是以直接寻找区域为基础的分割技术,基于区域提取方法有两种基本形式:一种是区域生长,从单个像素出发,逐步合并以形成所需要的分割区域;另一种是从全局出发,逐步切割至所需的分割区域。
      区域生长
      区域生长是从一组代表不同生长区域的种子像素开始,接下来将种子像素邻域里符合条件的像素合并到种子像素所代表的生长区域中,并将新添加的像素作为新的种子像素继续合并过程,知道找不到符合条件的新像素为止(小编研一第一学期的机器学习期末考试就是手写该算法 T.T),该方法的关键是选择合适的初始种子像素以及合理的生长准则。
      区域生长算法需要解决的三个问题:
      (1)选择或确定一组能正确代表所需区域的种子像素;
      (2)确定在生长过程中能将相邻像素包括进来的准则;
      (3)指定让生长过程停止的条件或规则。
      区域分裂合并
      区域生长是从某个或者某些像素点出发,最终得到整个区域,进而实现目标的提取。而分裂合并可以说是区域生长的逆过程,从整幅图像出发,不断的分裂得到各个子区域,然后再把前景区域合并,得到需要分割的前景目标,进而实现目标的提取。其实如果理解了上面的区域生长算法这个区域分裂合并算法就比较好理解啦。
      四叉树分解法就是一种典型的区域分裂合并法,基本算法如下:
      (1)对于任一区域,如果H(Ri)=FALSE就将其分裂成不重叠的四等分;
      (2)对相邻的两个区域Ri和Rj,它们也可以大小不同(即不在同一层),如果条件H(RiURj)=TURE满足,就将它们合并起来;
      (3)如果进一步的分裂或合并都不可能,则结束。
      其中R代表整个正方形图像区域,P代表逻辑词。
      区域分裂合并算法优缺点:
      (1)对复杂图像分割效果好;
      (2)算法复杂,计算量大;
      (3)分裂有可能破怪区域的边界。
      在实际应用当中通常将区域生长算法和区域分裂合并算法结合使用,该类算法对某些复杂物体定义的复杂场景的分割或者对某些自然景物的分割等类似先验知识不足的图像分割效果较为理想。
      分水岭算法
      分水岭算法是一个非常好理解的算法,它根据分水岭的构成来考虑图像的分割,现实中我们可以想象成有山和湖的景象,那么一定是如下图的,水绕山山围水的景象。
      分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。
      分水岭对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化都有可能产生过度分割的现象,但是这也同时能够保证得到封闭连续边缘。同时,分水岭算法得到的封闭的集水盆也为分析图像的区域特征提供了可能。

    3.基于边缘检测的分割方法

    基于边缘检测的图像分割算法试图通过检测包含不同区域的边缘来解决分割问题。它可以说是人们最先想到也是研究最多的方法之一。通常不同区域的边界上像素的灰度值变化比较剧烈,如果将图片从空间域通过傅里叶变换到频率域,边缘就对应着高频部分,这是一种非常简单的边缘检测算法。
    边缘检测技术通常可以按照处理的技术分为串行边缘检测和并行边缘检测。串行边缘检测是要想确定当前像素点是否属于检测边缘上的一点,取决于先前像素的验证结果。并行边缘检测是一个像素点是否属于检测边缘高尚的一点取决于当前正在检测的像素点以及与该像素点的一些临近像素点。
    最简单的边缘检测方法是并行微分算子法,它利用相邻区域的像素值不连续的性质,采用一阶或者二阶导数来检测边缘点。近年来还提出了基于曲面拟合的方法、基于边界曲线拟合的方法、基于反应-扩散方程的方法、串行边界查找、基于变形模型的方法。

    边缘检测的优缺点:
    (1)边缘定位准确;
    (2)速度快;
    (3)不能保证边缘的连续性和封闭性;
    (4)在高细节区域存在大量的碎边缘,难以形成一个大区域,但是又不宜将高细节区域分成小碎片;
    由于上述的(3)(4)两个难点,边缘检测只能产生边缘点,而非完整意义上的图像分割过程。这也就是说,在边缘点信息获取到之后还需要后续的处理或者其他相关算法相结合才能完成分割任务。
    在以后的研究当中,用于提取初始边缘点的自适应阈值选取、用于图像的层次分割的更大区域的选取以及如何确认重要边缘以去除假边缘将变得非常重要。

    结合特定工具的图像分割算法

    基于小波分析和小波变换的图像分割方法

    小波变换是近年来得到的广泛应用的数学工具,也是现在数字图像处理必学部分,它在时间域和频率域上都有量高的局部化性质,能将时域和频域统一于一体来研究信号。而且小波变换具有多尺度特性,能够在不同尺度上对信号进行分析,因此在图像分割方面的得到了应用,
    二进小波变换具有检测二元函数的局部突变能力,因此可作为图像边缘检测工具。图像的边缘出现在图像局部灰度不连续处,对应于二进小波变换的模极大值点。通过检测小波变换模极大值点可以确定图像的边缘小波变换位于各个尺度上,而每个尺度上的小波变换都能提供一定的边缘信息,因此可进行多尺度边缘检测来得到比较理想的图像边缘。

    上图左图是传统的阈值分割方法,右边的图像就是利用小波变换的图像分割。可以看出右图分割得到的边缘更加准确和清晰
    另外,将小波和其他方法结合起来处理图像分割的问题也得到了广泛研究,比如一种局部自适应阈值法就是将Hilbert图像扫描和小波相结合,从而获得了连续光滑的阈值曲线。

    基于遗传算法的图像分割

    ​ 遗传算法(Genetic Algorithms,简称GA)是1973年由美国教授Holland提出的,是一种借鉴生物界自然选择和自然遗传机制的随机化搜索算法。是仿生学在数学领域的应用。其基本思想是,模拟由一些基因串控制的生物群体的进化过程,把该过程的原理应用到搜索算法中,以提高寻优的速度和质量。此算法的搜索过程不直接作用在变量上,而是在参数集进行了编码的个体,这使得遗传算法可直接对结构对象(图像)进行操作。整个搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部最优解的可能性,并易于并行化。搜索过程采用概率的变迁规则来指导搜索方向,而不采用确定性搜索规则,而且对搜索空间没有任何特殊要求(如连通性、凸性等),只利用适应性信息,不需要导数等其他辅助信息,适应范围广。
    ​ 遗传算法擅长于全局搜索,但局部搜索能力不足,所以常把遗传算法和其他算法结合起来应用。将遗传算法运用到图像处理主要是考虑到遗传算法具有与问题领域无关且快速随机的搜索能力。其搜索从群体出发,具有潜在的并行性,可以进行多个个体的同时比较,能有效的加快图像处理的速度。但是遗传算法也有其缺点:搜索所使用的评价函数的设计、初始种群的选择有一定的依赖性等。要是能够结合一些启发算法进行改进且遗传算法的并行机制的潜力得到充分的利用,这是当前遗传算法在图像处理中的一个研究热点。

    基于主动轮廓模型的分割方法

    ​ 主动轮廓模型(active contours)是图像分割的一种重要方法,具有统一的开放式的描述形式,为图像分割技术的研究和创新提供了理想的框架。在实现主动轮廓模型时,可以灵活的选择约束力、初始轮廓和作用域等,以得到更佳的分割效果,所以主动轮廓模型方法受到越来越多的关注。
    ​ 该方法是在给定图像中利用曲线演化来检测目标的一类方法,基于此可以得到精确的边缘信息。其基本思想是,先定义初始曲线C,然后根据图像数据得到能量函数,通过最小化能量函数来引发曲线变化,使其向目标边缘逐渐逼近,最终找到目标边缘。这种动态逼近方法所求得的边缘曲线具有封闭、光滑等优点。

    ​ 传统的主动轮廓模型大致分为参数主动轮廓模型和几何主动轮廓模型。参数主动轮廓模型将曲线或曲面的形变以参数化形式表达,Kass等人提出了经典的参数活动轮廓模型即“Snake”模型,其中Snake定义为能量极小化的样条曲线,它在来自曲线自身的内力和来自图像数据的外力的共同作用下移动到感兴趣的边缘,内力用于约束曲线形状,而外力则引导曲线到特征此边缘。参数主动轮廓模型的特点是将初始曲线置于目标区域附近,无需人为设定曲线的的演化是收缩或膨胀,其优点是能够与模型直接进行交互,且模型表达紧凑,实现速度快;其缺点是难以处理模型拓扑结构的变化。比如曲线的合并或分裂等。而使用水平集(level set)的几何活动轮廓方法恰好解决了这一问题。

    基于深度学习的分割

    1.基于特征编码(feature encoder based)

    在特征提取领域中VGGnet和ResNet是两个非常有统治力的方法,接下来的一些篇幅会对这两个方法进行简短的介绍

    a.VGGNet

    ​ 由牛津大学计算机视觉组合和Google DeepMind公司研究员一起研发的深度卷积神经网络。它探索了卷积神经网络的深度和其性能之间的关系,通过反复的堆叠33的小型卷积核和22的最大池化层,成功的构建了16~19层深的卷积神经网络。VGGNet获得了ILSVRC 2014年比赛的亚军和定位项目的冠军,在top5上的错误率为7.5%。目前为止,VGGNet依然被用来提取图像的特征。

    ​ VGGNet的优缺点

    1. 由于参数量主要集中在最后的三个FC当中,所以网络加深并不会带来参数爆炸的问题;
    2. 多个小核卷积层的感受野等同于一个大核卷积层(三个3x3等同于一个7x7)但是参数量远少于大核卷积层而且非线性操作也多于后者,使得其学习能力较强
    3. VGG由于层数多而且最后的三个全连接层参数众多,导致其占用了更多的内存(140M)
    b.ResNet

    ​ 随着深度学习的应用,各种深度学习模型随之出现,虽然在每年都会出现性能更好的新模型,但是对于前人工作的提升却不是那么明显,其中有重要问题就是深度学习网络在堆叠到一定深度的时候会出现梯度消失的现象,导致误差升高效果变差,后向传播时无法将梯度反馈到前面的网络层,使得前方的网络层的参数难以更新,训练效果变差。这个时候ResNet恰好站出来,成为深度学习发展历程中一个重要的转折点。
    ​ ResNet是由微软研究院的Kaiming He等四名华人提出,他们通过自己提出的ResNet Unit成功训练出来152层的神经网络并在ILSVRC2015比赛中斩获冠军。ResNet语义分割领域最受欢迎且最广泛运用的神经网络.ResNet的核心思想就是在网络中引入恒等映射,允许原始输入信息直接传到后面的层中,在学习过程中可以只学习上一个网络输出的残差(F(x)),因此ResNet又叫做残差网络。、

    使用到ResNet的分割模型:

    • Efficient Neural Network(ENet):该网络类似于ResNet的bottleNeck方法;
    • ResNet-38:该网络在训练or测试阶段增加并移除了一些层,是一种浅层网络,它的结构是ResNet+FCN;
    • full-resolution residual network(FRRN):FRRN网络具有和ResNet相同优越的训练特性,它由残差流和池化流两个处理流组成;
    • AdapNey:根据ResNet-50的网络进行改进,让原本的ResNet网络能够在更短的时间内学习到更多高分辨率的特征;
      ……
      ResNet的优缺点:
      1)引入了全新的网络结构(残差学习模块),形成了新的网络结构,可以使网络尽可能地加深;
      2)使得前馈/反馈传播算法能够顺利进行,结构更加简单;
      3)恒等映射地增加基本上不会降低网络的性能;
      4)建设性地解决了网络训练的越深,误差升高,梯度消失越明显的问题;
      5)由于ResNet搭建的层数众多,所以需要的训练时间也比平常网络要长。

    2.基于区域选择(regional proposal based)

    Regional proposal 在计算机视觉领域是一个非常常用的算法,尤其是在目标检测领域。其核心思想就是检测颜色空间和相似矩阵,根据这些来检测待检测的区域。然后根据检测结果可以进行分类预测。
    在语义分割领域,基于区域选择的几个算法主要是由前人的有关于目标检测的工作渐渐延伸到语义分割的领域的,接下来小编将逐步介绍其个中关系。

    Stage Ⅰ: R-CNN

    伯克利大学的Girshick教授等人共同提出了首个在目标检测方向应用的深度学习模型:Region-based Convolutional Neural Network(R-CNN)。该网络模型如下图所示,其主要流程为:先使用selective search算法提取2000个候选框,然后通过卷积网络对候选框进行串行的特征提取,再根据提取的特征使用SVM对候选框进行分类预测,最后使用回归方法对区域框进行修正。

    R-CNN的优缺点:

    • 是首个开创性地将深度神经网络应用到目标检测的算法;
    • 使用Bounding Box Regression对目标检测的框进行调整;
    • 由于进行特征提取时是串行,处理耗时过长;
    • Selective search算法在提取每一个region时需要2s的时间,浪费大量时间
    Stage Ⅱ:Fast R-CNN

    ​ 由于R-CNN的效率太低,2015年由Ross等学者提出了它的改进版本:Fast R-CNN。其网络结构图如下图所示(从提取特征开始,略掉了region的选择)Fast R-CNN在传统的R-CNN模型上有所改进的地方是它是直接使用一个神经网络对整个图像进行特征提取,就省去了串行提取特征的时间;接着使用一个RoI Pooling Layer在全图的特征图上摘取每一个RoI对应的特征,再通过FC进行分类和包围框的修正。

    Fast R-CNN的优缺点

    • 节省了串行提取特征的时间;
    • 除了selective search以外的其它所有模块都可以合在一起训练;
    • 最耗时间的selective search算法依然存在。
    Stage Ⅲ:Faster R-CNN

    2016年提出的Faster R-CNN可以说有了突破性的进展(虽然还是目标检测哈哈哈),因为它改变了它的前辈们最耗时最致命的部位:selective search算法。它将selective search算法替换成为RPN,使用RPN网络进行region的选取,将2s的时间降低到10ms,其网络结构如下图所示:

    Faster R-CNN优缺点:

    • 使用RPN替换了耗时的selective search算法,对整个网络结构有了突破性的优化;
    • Faster R-CNN中使用的RPN和selective search比起来虽然速度更快,但是精度和selective search相比稍有不及,如果更注重速度而不是精度的话完全可以只使用RPN;
    Stage Ⅳ:Mask R-CNN

    Mask R-CNN(终于到分割了!)是何恺明大神团队提出的一个基于Faster R-CNN模型的一种新型的分割模型,此论文斩获ICCV 2017的最佳论文,在Mask R-CNN的工作中,它主要完成了三件事情:目标检测,目标分类,像素级分割。
    恺明大神是在Faster R-CNN的结构基础上加上了Mask预测分支,并且改良了ROI Pooling,提出了ROI Align。其网络结构真容就如下图所示啦:

    Mask R-CNN的优缺点:

    • 引入了预测用的Mask-Head,以像素到像素的方式来预测分割掩膜,并且效果很好;
    • 用ROI Align替代了ROI Pooling,去除了RoI Pooling的粗量化,使得提取的特征与输入良好对齐;
    • 分类框与预测掩膜共享评价函数,虽然大多数时间影响不大,但是有的时候会对分割结果有所干扰。
    Stage Ⅴ:Mask Scoring R-CNN

    最后要提出的是2019年CVPR的oral,来自华中科技大学的研究生黄钊金同学提出的
    MS R-CNN,这篇文章的提出主要是对上文所说的Mask R-CNN的一点点缺点进行了修正。他的网络结构也是在Mask R-CNN的网络基础上做了一点小小的改进,添加了Mask-IoU。
    黄同学在文章中提到:恺明大神的Mask R-CNN已经很好啦!但是有个小毛病,就是评价函数只对目标检测的候选框进行打分,而不是分割模板(就是上文提到的优缺点中最后一点),所以会出现分割模板效果很差但是打分很高的情况。所以黄同学增加了对模板进行打分的MaskIoU Head,并且最终的分割结果在COCO数据集上超越了恺明大神,下面就是MS R-CNN的网络结构啦~

    MS R-CNN的优缺点:

    • 优化了Mask R-CNN中的信息传播,提高了生成预测模板的质量;
    • 未经大批量训练的情况下,就拿下了COCO 2017挑战赛实例分割任务冠军;
    • 要说缺点的话。。应该就是整个网络有些庞大,一方面需要ResNet当作主干网络,另一方面需要其它各种Head共同承担各种任务。

    3.基于RNN的图像分割

    Recurrent neural networks(RNNs)除了在手写和语音识别上表现出色外,在解决计算机视觉的任务上也表现不俗,在本篇文章中我们就将要介绍RNN在2D图像处理上的一些应用,其中也包括介绍使用到它的结构或者思想的一些模型。
    RNN是由Long-Short-Term Memory(LSTM)块组成的网络,RNN来自序列数据的长期学习的能力以及随着序列保存记忆的能力使其在许多计算机视觉的任务中游刃有余,其中也包括语义分割以及数据标注的任务。接下来的部分我们将介绍几个使用到RNN结构的用于分割的网络结构模型:

    1.ReSeg模型

    ReSeg可能不被许多人所熟知,在百度上搜索出的相关说明与解析也不多,但是这是一个很有效的语义分割方法。众所周知,FCN可谓是图像分割领域的开山作,而RegNet的作者则在自己的文章中大胆的提出了FCN的不足:没有考虑到局部或者全局的上下文依赖关系,而在语义分割中这种依赖关系是非常有用的。所以在ReSeg中作者使用RNN去检索上下文信息,以此作为分割的一部分依据。

    该结构的核心就是Recurrent Layer,它由多个RNN组合在一起,捕获输入数据的局部和全局空间结构。
    优缺点:

    • 充分考虑了上下文信息关系;
    • 使用了中值频率平衡,它通过类的中位数(在训练集上计算)和每个类的频率之间的比值来重新加权类的预测。这就增加了低频率类的分数,这是一个更有噪声的分割掩码的代价,因为被低估的类的概率被高估了,并且可能导致在输出分割掩码中错误分类的像素增加。
    2.MDRNNs(Multi-Dimensional Recurrent Neural Networks)模型

    传统的RNN在一维序列学习问题上有着很好的表现,比如演讲(speech)和在线手写识别。但是 在多为问题中应用却并不到位。MDRNNs在一定程度上将RNN拓展到多维空间领域,使之在图像处理、视频处理等领域上也能有所表现。
    该论文的基本思想是:将单个递归连接替换为多个递归连接,相应可以在一定程度上解决时间随数据样本的增加呈指数增长的问题。以下就是该论文提出的两个前向反馈和反向反馈的算法。

    4.基于上采样/反卷积的分割方法

    卷积神经网络在进行采样的时候会丢失部分细节信息,这样的目的是得到更具特征的价值。但是这个过程是不可逆的,有的时候会导致后面进行操作的时候图像的分辨率太低,出现细节丢失等问题。因此我们通过上采样在一定程度上可以不全一些丢失的信息,从而得到更加准确的分割边界。
    接下来介绍几个非常著名的分割模型:

    a.FCN(Fully Convolutional Network)

    是的!讲来讲去终于讲到这位大佬了,FCN!在图像分割领域已然成为一个业界标杆,大多数的分割方法多多少少都会利用到FCN或者其中的一部分,比如前面我们讲过的Mask R-CNN。
    在FCN当中的反卷积-升采样结构中,图片会先进性上采样(扩大像素);再进行卷积——通过学习获得权值。FCN的网络结构如下图所示:

    当然最后我们还是需要分析一下FCN,不能无脑吹啦~
    优缺点:

    • FCN对图像进行了像素级的分类,从而解决了语义级别的图像分割问题;
    • FCN可以接受任意尺寸的输入图像,可以保留下原始输入图像中的空间信息;
    • 得到的结果由于上采样的原因比较模糊和平滑,对图像中的细节不敏感;
    • 对各个像素分别进行分类,没有充分考虑像素与像素的关系,缺乏空间一致性。
    2.SetNet

    SegNet是剑桥提出的旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,SegNet基于FCN,与FCN的思路十分相似,只是其编码-解码器和FCN的稍有不同,其解码器中使用去池化对特征图进行上采样,并在分各种保持高频细节的完整性;而编码器不使用全连接层,因此是拥有较少参数的轻量级网络:

    图像分割是计算机视觉研究中的一个经典难题,已经成为图像理解领域关注的一个热点,图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,同时也是图像处理中最困难的问题之一。所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的说就是在一副图像中,把目标从背景中分离出来。对于灰度图像来说,区域内部的像素一般具有灰度相似性,而在区域的边界上一般具有灰度不连续性。 关于图像分割技术,由于问题本身的重要性和困难性,从20世纪70年代起图像分割问题就吸引了很多研究人员为之付出了巨大的努力。虽然到目前为止,还不存在一个通用的完美的图像分割的方法,但是对于图像分割的一般性规律则基本上已经达成的共识,已经产生了相当多的研究成果和方法。

    本文对于目前正在使用的各种图像分割方法进行了一定的归纳总结,由于笔者对于图像分割的了解也是初窥门径,所以难免会有一些错误,还望各位读者多多指正,共同学习进步。

    SetNet的优缺点:

    • 保存了高频部分的完整性;
    • 网络不笨重,参数少,较为轻便;
    • 对于分类的边界位置置信度较低;
    • 对于难以分辨的类别,例如人与自行车,两者如果有相互重叠,不确定性会增加。
      以上两种网络结构就是基于反卷积/上采样的分割方法,当然其中最最最重要的就是FCN了,哪怕是后面大名鼎鼎的SegNet也是基于FCN架构的,而且FCN可谓是语义分割领域中开创级别的网络结构,所以虽然这个部分虽然只有两个网络结构,但是这两位可都是重量级嘉宾,希望各位能够深刻理解~

    5.基于提高特征分辨率的分割方法

    在这一个模块中我们主要给大家介绍一下基于提升特征分辨率的图像分割的方法。换一种说法其实可以说是恢复在深度卷积神经网络中下降的分辨率,从而获取更多的上下文信息。这一系列我将给大家介绍的是Google提出的DeepLab 。
    DeepLab是结合了深度卷积神经网络和概率图模型的方法,应用在语义分割的任务上,目的是做逐像素分类,其先进性体现在DenseCRFs(概率图模型)和DCNN的结合。是将每个像素视为CRF节点,利用远程依赖关系并使用CRF推理直接优化DCNN的损失函数。
    在图像分割领域,FCN的一个众所周知的操作就是平滑以后再填充,就是先进行卷积再进行pooling,这样在降低图像尺寸的同时增大感受野,但是在先减小图片尺寸(卷积)再增大尺寸(上采样)的过程中一定有一些信息损失掉了,所以这里就有可以提高的空间。
    接下来我要介绍的是DeepLab网络的一大亮点:Dilated/Atrous Convolution,它使用的采样方式是带有空洞的采样。在VGG16中使用不同采样率的空洞卷积,可以明确控制网络的感受野。

    图a对应3x3的1-dilated conv,它和普通的卷积操作是相同的;图b对应3x3的2-dilated conv,事迹卷积核的尺寸还是3x3(红点),但是空洞为1,其感受野能够达到7x7;图c对应3x3的4-dilated conv,其感受野已经达到了15x15.写到这里相信大家已经明白,在使用空洞卷积的情况下,加大了感受野,使每个卷积输出都包含了较大范围的信息。
    这样就解决了DCNN的几个关于分辨率的问题:
    1)内部数据结构丢失;空间曾计划信息丢失;
    2)小物体信息无法重建;
    当然空洞卷积也存在一定的问题,它的问题主要体现在以下两方面:
    1)网格效应
    加入我们仅仅多次叠加dilation rate 2的 3x3 的卷积核则会出现以下问题

    我们发现卷积核并不连续,也就是说并不是所有的像素都用来计算了,这样会丧失信息的连续性;
    2)小物体信息处理不当
    我们从空洞卷积的设计背景来看可以推测出它是设计来获取long-ranged information。然而空洞步频选取得大获取只有利于大物体得分割,而对于小物体的分割可能并没有好处。所以如何处理好不同大小物体之间的关系也是设计好空洞卷积网络的关键。

    6.基于特征增强的分割方法

    基于特征增强的分割方法包括:提取多尺度特征或者从一系列嵌套的区域中提取特征。在图像分割的深度网络中,CNN经常应用在图像的小方块上,通常称为以每个像素为中心的固定大小的卷积核,通过观察其周围的小区域来标记每个像素的分类。在图像分割领域,能够覆盖到更大部分的上下文信息的深度网络通常在分割的结果上更加出色,当然这也伴随着更高的计算代价。多尺度特征提取的方法就由此引进。
    在这一模块中我先给大家介绍一个叫做SLIC,全称为simple linear iterative cluster的生成超像素的算法。
    首先我们要明确一个概念:啥是超像素?其实这个比较容易理解,就像上面说的“小方块”一样,我们平常处理图像的最小单位就是像素了,这就是像素级(pixel-level);而把像素级的图像划分成为区域级(district-level)的图像,把区域当成是最基本的处理单元,这就是超像素啦。
    算法大致思想是这样的,将图像从RGB颜色空间转换到CIE-Lab颜色空间,对应每个像素的(L,a,b)颜色值和(x,y)坐标组成一个5维向量V[l, a, b, x, y],两个像素的相似性即可由它们的向量距离来度量,距离越大,相似性越小。
    算法首先生成K个种子点,然后在每个种子点的周围空间里搜索距离该种子点最近的若干像素,将他们归为与该种子点一类,直到所有像素点都归类完毕。然后计算这K个超像素里所有像素点的平均向量值,重新得到K个聚类中心,然后再以这K个中心去搜索其周围与其最为相似的若干像素,所有像素都归类完后重新得到K个超像素,更新聚类中心,再次迭代,如此反复直到收敛。
    有点像聚类的K-Means算法,最终会得到K个超像素。
    Mostahabi等人提出的一种前向传播的分类方法叫做Zoom-Out就使用了SLIC的算法,它从多个不同的级别提取特征:局部级别:超像素本身;远距离级别:能够包好整个目标的区域;全局级别:整个场景。这样综合考虑多尺度的特征对于像素或者超像素的分类以及分割来说都是很有意义的。
    接下来的部分我将给大家介绍另一种完整的分割网络:PSPNet:Pyramid Scene Parsing Network
    论文提出在场景分割是,大多数的模型会使用FCN的架构,但是FCN在场景之间的关系和全局信息的处理能力存在问题,其典型问题有:1.上下文推断能力不强;2.标签之间的关系处理不好;3.模型可能会忽略小的东西。
    本文提出了一个具有层次全局优先级,包含不同子区域时间的不同尺度的信息,称之为金字塔池化模块。
    该模块融合了4种不同金字塔尺度的特征,第一行红色是最粗糙的特征–全局池化生成单个bin输出,后面三行是不同尺度的池化特征。为了保证全局特征的权重,如果金字塔共有N个级别,则在每个级别后使用1×1 1×11×1的卷积将对于级别通道降为原本的1/N。再通过双线性插值获得未池化前的大小,最终concat到一起。其结构如下图:

    最终结果就是,在融合不同尺度的feature后,达到了语义和细节的融合,模型的性能表现提升很大,作者在很多数据集上都做过训练,最终结果是在MS-COCO数据集上预训练过的效果最好。

    为了捕捉多尺度特征,高层特征包含了更多的语义和更少的位置信息。结合多分辨率图像和多尺度特征描述符的优点,在不丢失分辨率的情况下提取图像中的全局和局部信息,这样就能在一定程度上提升网络的性能。

    7.使用CRF/MRF的方法

    首先让我们熟悉熟悉到底啥是MRF的CRF的。
    MRF全称是Marcov Random Field,马尔可夫随机场,其实说起来笔者在刚读硕士的时候有一次就有同学在汇报中提到了隐马尔可夫、马尔可夫链啥的,当时还啥都不懂,小白一枚(现在是准小白hiahia),觉得马尔可夫这个名字贼帅,后来才慢慢了解什么马尔科夫链呀,马尔可夫随机场,并且在接触到图像分割了以后就对马尔科夫随机场有了更多的了解。
    MRF其实是一种基于统计的图像分割算法,马尔可夫模型是指一组事件的集合,在这个集合中,事件逐个发生,并且下一刻事件的发生只由当前发生的事件决定,而与再之前的状态没有关系。而马尔可夫随机场,就是具有马尔可夫模型特性的随机场,就是场中任何区域都只与其临近区域相关,与其他地方的区域无关,那么这些区域里元素(图像中可以是像素)的集合就是一个马尔可夫随机场。
    CRF的全称是Conditional Random Field,条件随机场其实是一种特殊的马尔可夫随机场,只不过是它是一种给定了一组输入随机变量X的条件下另一组输出随机变量Y的马尔可夫随机场,它的特点是埃及设输出随机变量构成马尔可夫随机场,可以看作是最大熵马尔可夫模型在标注问题上的推广。
    在图像分割领域,运用CRF比较出名的一个模型就是全连接条件随机场(DenseCRF),接下来我们将花费一些篇幅来简单介绍一下。
    CRF在运行中会有一个问题就是它只对相邻节点进行操作,这样会损失一些上下文信息,而全连接条件随机场是对所有节点进行操作,这样就能获取尽可能多的临近点信息,从而获得更加精准的分割结果。
    在Fully connected CRF中,吉布斯能量可以写作:

    我们重点关注二元部分:

    其中k(m)为高斯核,写作:

    该模型的一元势能包含了图像的形状,纹理,颜色和位置,二元势能使用了对比度敏感的的双核势能,CRF的二元势函数一般是描述像素点与像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同标签,而这个“距离”的定义与颜色值和实际相对距离有关,这样CRF能够使图像尽量在边界处分割。全连接CRF模型的不同就在于其二元势函数描述的是每一个像素与其他所有像素的关系,使用该模型在图像中的所有像素对上建立点对势能从而实现极大地细化和分割。
    在分割结果上我们可以看看如下的结果图:

    可以看到它在精细边缘的分割比平常的分割方法要出色得多,而且文章中使用了另一种优化算法,使得本来需要及其大量运算的全连接条件随机场也能在很短的时间里给出不错的分割结果。
    至于其优缺点,我觉得可以总结为以下几方面:

    • 在精细部位的分割非常优秀;
    • 充分考虑了像素点或者图片区域之间的上下文关系;
    • 在粗略的分割中可能会消耗不必要的算力;
    • 可以用来恢复细致的局部结构,但是相应的需要较高的代价。
      OK,那么本次的推送就到这里结束啦,本文的主要内容是对图像分割的算法进行一个简单的分类和介绍。综述对于各位想要深入研究的看官是非常非常重要的资源:大佬们经常看综述一方面可以了解算法的不足并在此基础上做出改进;萌新们可以通过阅读一篇好的综述入门某一个学科,比如今天的内容就是图像分割。
      谢谢各位朋友们的观看!

    推荐阅读

    如何从零开始系统化学习视觉SLAM?
    从零开始一起学习SLAM | 为什么要学SLAM?
    从零开始一起学习SLAM | 学习SLAM到底需要学什么?
    从零开始一起学习SLAM | SLAM有什么用?
    从零开始一起学习SLAM | C++新特性要不要学?
    从零开始一起学习SLAM | 为什么要用齐次坐标?
    从零开始一起学习SLAM | 三维空间刚体的旋转
    从零开始一起学习SLAM | 为啥需要李群与李代数?
    从零开始一起学习SLAM | 相机成像模型
    从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
    从零开始一起学习SLAM | 神奇的单应矩阵
    从零开始一起学习SLAM | 你好,点云
    从零开始一起学习SLAM | 给点云加个滤网
    从零开始一起学习SLAM | 点云平滑法线估计
    从零开始一起学习SLAM | 点云到网格的进化
    从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
    从零开始一起学习SLAM | 掌握g2o顶点编程套路
    从零开始一起学习SLAM | 掌握g2o边的代码套路
    零基础小白,如何入门计算机视觉?
    SLAM领域牛人、牛实验室、牛研究成果梳理
    我用MATLAB撸了一个2D LiDAR SLAM
    可视化理解四元数,愿你不再掉头发
    最近一年语义SLAM有哪些代表性工作?
    视觉SLAM技术综述
    汇总 | VIO、激光SLAM相关论文分类集锦
    研究SLAM,对编程的要求有多高?
    2018年SLAM、三维视觉方向求职经验分享
    2018年SLAM、三维视觉方向求职经验分享
    深度学习遇到SLAM | 如何评价基于深度学习的DeepVO,VINet,VidLoc?
    视觉SLAM关键方法总结
    SLAM方向公众号、知乎、博客上有哪些大V可以关注?
    SLAM实验室
    SLAM方向国内有哪些优秀公司?
    SLAM面试常见问题
    SLAM相关领域数据集调研
    从零开始一起学习SALM-ICP原理及应用
    解放双手——相机与IMU外参的在线标定
    目标检测

    展开全文
  • 蚁群算法汇总含matlab代码_数学建模(十四)

    千次阅读 多人点赞 2019-11-10 12:27:23
    蚁群算法模拟自然界蚂蚁群体的觅食行为,常用于旅行商问题(TSP),二维、三维路径规划问题。 将蚁群算法用于优化问题的思路:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体群体的所有路径构成待优化问题的...

    蚁群算法模拟自然界蚂蚁群体的觅食行为,常用于旅行商问题(TSP),二维、三维路径规划问题。
    将蚁群算法用于优化问题的思路:用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体群体的所有路径构成待优化问题的解空间。路径较短的蚂蚁释放的信息素量较多,随着时间的推进,较短的路径上累积的信息素浓度逐渐增高,选择该路径的蚂蚁个数也越来越多。最终,整个蚂蚁会在正反馈的作用下集中到最佳的路径上,此时对应的便是待优化问题的最优解。
    使用蚁群算法解决问题的基本步骤如下:
    在这里插入图片描述
    图1 蚁群算法解决TSP问题的基本步骤
    1:初始化参数
    在计算之初,需要对相关的参数进行初始化,如蚁群规模、信息素重要程度因子、启发函数重要程度因子,信息素挥发因子,信息素释放总量,最大迭代次数,迭代数初值。
    2:构建解空间
    将各个蚂蚁随机地置于不同出发点,对每个蚂蚁k,计算其下一个待访问的城市,直到所有蚂蚁访问完所有的城市。
    3:更新信息素
    计算各个蚂蚁经过的路径长度,记录当前迭代次数中的最优解(最短路径)。同时,对各个城市连接路径上的信息素浓度进行更新。
    4:判断是否终止
    若iter<iter_max,则令iter=iter+1,清空蚂蚁经过路径的记录表,并返回步骤2,否则,终止计算,输出最优解。

    蚁群算法的特点:
    (1)采用正反馈机制,使得搜索过程不断收敛,最终逼近最优解。
    (2)每个个体可以通过释放信息素来改变周围的环境,且每个个体能够感知周围环境的实时变化,个体间通过环境进行间接地通讯。
    (3)搜索过程采用分布式计算方法,多个个体同时进行并行计算,大大提高了算法的计算能力和运行效率。
    (4)启发式的概率搜索方法不容易陷入局部最优解,易于寻找到全局最优解。

    我们以中国31个直辖市、省会、自治区(未包括我国香港、澳门及台湾)

    求解结果如下:
    在这里插入图片描述
    图2 TSP的最短距离与迭代次数的关系图
    在这里插入图片描述
    图3 蚁群算法优化路径

    二维路径规划问题:
    路径规划算法是指在有障碍物的工作环境中寻找一条从起点到终点、无碰撞地绕过所有障碍物的运动路径。
    我们以一个具体问题为例:
    采用蚁群算法在200200的二维空间中寻找一条从起点S到终点T的最优路径,该二维空间中存在4个障碍物,障碍物1的4个顶点的坐标分别为(40 140;60 160;100 140;60 120),障碍物2的4个顶点分别为(50 30;30 40;80 80;100 40),障碍物3的4个顶点分别为(120 160;140 100;180 170;165 180),障碍物4的3个顶点分别为(120 40;170 40;140 80),其中点S为起点,起点坐标为(20,180);点T为终点,终点坐标为(160,90)。
    求解结果:
    在这里插入图片描述
    图4 适应度值变化
    在这里插入图片描述
    图5 路径规划结果
    三维路径规划问题:
    采用蚁群算法在跨度为21km
    21km的一片海域中搜索从起点到终点,并且避开所有障碍物的路径,为了方便问题的求解,取该区域内最深点的高度为0,其他点高度根据和最深点高度差依次取得。路径规划起点坐标为(1,10,800),终点坐标为(21,4,1000),规划环境和起点、终点如图:
    在这里插入图片描述
    图6 三维路径搜索空间
    求解结果如图:
    在这里插入图片描述
    图7 适应度值变化
    在这里插入图片描述
    图8 路径规划结果
    参考文献:
    [1]DORIGO M,GAMBARDELLA L M. Ant Colonies for the Traveling Salesman Problem[J]. BioSystems,1997,43(2):73-81.
    [2]DORIGO M,GAMBARDELLA L M Ant Colony System:a Cooperative Learning Approach to the Traveling Salesman Problem[J].IEEE Transaction on Evolutionary Computation,1997,1(1):53-66.
    [3]DORIGO M,BIRATTARI M,STUTZLE T. Ant Colony Optimization[J].Computational Intelligence Magazine,2006,1(4):28-39.
    [4]STUTZLE T D M.A Short Convergence Proof for a Class of Ant Colony Optimization Algorithms[J].IEEE Transactions on Evolutionary Computation,2002,6(4):358-365.
    [5]萧蕴诗,李炳宇,吴启迪.求解TSP问题的模式学习并行蚁群算法[J].控制与决策,2004,19(8):885-888.
    [6]吴斌,史忠植.一种基于蚁群算法的 TSP问题分段求解方法[J].计算机学报,2001,24(12):1328-1333
    [7]王颖,谢剑英.一种自适应蚁群算法及其仿真研究[J].系统仿真学报,2002.14(1):31 -33.
    [8]叶志伟,郑肇葆.蚁群算法中参数 设置的研究——以 TSP问题为例[J].武汉大学学报:信息科学版.2004.29(7):597 - 601.
    [9]胡小兵,黄席樾.对一类带聚类特征 TSP问题的蚁群算法求解[J].系统仿真学报,2004,16(12):
    2683 - 2686.
    [10] 徐精明,曹先彬,王煦法.多态蚁群算法[J].中国科学技术大学学报,2005,35(1):59- 65.

    [11]XI Y G.ZHANG C G. Rolling Path Planning of Mobile Robot in a Kind of Dynamic Uncertain Environment[J]. Acta Automatica Sinica,2002,28:161 - 175.
    [12] COLONIA DORIGO M. MANIEZZO V. Distributed Optimization by Ant Colonies[EB/OL]. [2010 -
    09]. ftp://iridia. ulb. ac. be/ pub/ mdorigo/ conference/IC.06 - ECAL92. pdf.
    [13] DORIGO M, MANIEZZO V, COLONI A. The Ant System: Optimization by a Colony of Cooperating
    Agents[ EB/OL]. [2010- 09]. http://ieeexplore.ieee.org/xpl/freeabs_ all. jsp? arnumber=484436.
    [14] DORIGO M, GAMBARDELLA L M. Ant Colony System: a Cooperative Learning Approach to the Traveling Salesman Problem[J]. IEEE Transaction on Evolutionary Computation. 1997,1:53 - 66.

    [15]张京娟.基于遗传算法的水下潜器自主导航规划技术研究[D].哈尔滨:哈尔滨工程大学,2003.
    [16] WARREN C W. A Technique for Autonomous Underwater Vehicle Route Planning[J]. IEEE Journal of Oceanic Engineering, 1990,15(3):199 - 204.
    [17] VASUDEVAN C. GANESAN L. Case based Path Planning for Autonomous Underwater Vehicles[J]. Autonomous Robots, 1996,3(2):79 - 89.
    [18]田峰敏.基于先验地形数据处理的水下潜器地形辅助导航方法研究[D].哈尔滨:哈尔滨工程大学2007.
    附录:matlab代码:
    TSP问题求解代码:

    %% 清空环境变量
    clear all
    clc
    
    %% 导入数据
    load citys_data.mat
    
    %% 计算城市间相互距离
    n = size(citys,1);
    D = zeros(n,n);
    for i = 1:n
        for j = 1:n
            if i ~= j
                D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2));
            else
                D(i,j) = 1e-4;      
            end
        end    
    end
    
    %% 初始化参数
    m = 50;                              % 蚂蚁数量
    alpha = 1;                           % 信息素重要程度因子
    beta = 5;                            % 启发函数重要程度因子
    rho = 0.1;                           % 信息素挥发因子
    Q = 1;                               % 常系数
    Eta = 1./D;                          % 启发函数
    Tau = ones(n,n);                     % 信息素矩阵
    Table = zeros(m,n);                  % 路径记录表
    iter = 1;                            % 迭代次数初值
    iter_max = 200;                      % 最大迭代次数 
    Route_best = zeros(iter_max,n);      % 各代最佳路径       
    Length_best = zeros(iter_max,1);     % 各代最佳路径的长度  
    Length_ave = zeros(iter_max,1);      % 各代路径的平均长度  
    
    %% 迭代寻找最佳路径
    while iter <= iter_max
        % 随机产生各个蚂蚁的起点城市
          start = zeros(m,1);
          for i = 1:m
              temp = randperm(n);
              start(i) = temp(1);
          end
          Table(:,1) = start; 
          % 构建解空间
          citys_index = 1:n;
          % 逐个蚂蚁路径选择
          for i = 1:m
              % 逐个城市路径选择
             for j = 2:n
                 tabu = Table(i,1:(j - 1));           % 已访问的城市集合(禁忌表)
                 allow_index = ~ismember(citys_index,tabu);
                 allow = citys_index(allow_index);  % 待访问的城市集合
                 P = allow;
                 % 计算城市间转移概率
                 for k = 1:length(allow)
                     P(k) = Tau(tabu(end),allow(k))^alpha * Eta(tabu(end),allow(k))^beta;
                 end
                 P = P/sum(P);
                 % 轮盘赌法选择下一个访问城市
                 Pc = cumsum(P);     
                target_index = find(Pc >= rand); 
                target = allow(target_index(1));
                Table(i,j) = target;
             end
          end
          % 计算各个蚂蚁的路径距离
          Length = zeros(m,1);
          for i = 1:m
              Route = Table(i,:);
              for j = 1:(n - 1)
                  Length(i) = Length(i) + D(Route(j),Route(j + 1));
              end
              Length(i) = Length(i) + D(Route(n),Route(1));
          end
          % 计算最短路径距离及平均距离
          if iter == 1
              [min_Length,min_index] = min(Length);
              Length_best(iter) = min_Length;  
              Length_ave(iter) = mean(Length);
              Route_best(iter,:) = Table(min_index,:);
          else
              [min_Length,min_index] = min(Length);
              Length_best(iter) = min(Length_best(iter - 1),min_Length);
              Length_ave(iter) = mean(Length);
              if Length_best(iter) == min_Length
                  Route_best(iter,:) = Table(min_index,:);
              else
                  Route_best(iter,:) = Route_best((iter-1),:);
              end
          end
          % 更新信息素
          Delta_Tau = zeros(n,n);
          % 逐个蚂蚁计算
          for i = 1:m
              % 逐个城市计算
              for j = 1:(n - 1)
                  Delta_Tau(Table(i,j),Table(i,j+1)) = Delta_Tau(Table(i,j),Table(i,j+1)) + Q/Length(i);
              end
              Delta_Tau(Table(i,n),Table(i,1)) = Delta_Tau(Table(i,n),Table(i,1)) + Q/Length(i);
          end
          Tau = (1-rho) * Tau + Delta_Tau;
        % 迭代次数加1,清空路径记录表
        iter = iter + 1;
        Table = zeros(m,n);
    end
    
    %% 结果显示
    [Shortest_Length,index] = min(Length_best);
    Shortest_Route = Route_best(index,:);
    disp(['最短距离:' num2str(Shortest_Length)]);
    disp(['最短路径:' num2str([Shortest_Route Shortest_Route(1)])]);
    
    %% 绘图
    figure(1)
    plot([citys(Shortest_Route,1);citys(Shortest_Route(1),1)],...
         [citys(Shortest_Route,2);citys(Shortest_Route(1),2)],'o-');
    grid on
    for i = 1:size(citys,1)
        text(citys(i,1),citys(i,2),['   ' num2str(i)]);
    end
    text(citys(Shortest_Route(1),1),citys(Shortest_Route(1),2),'       起点');
    text(citys(Shortest_Route(end),1),citys(Shortest_Route(end),2),'       终点');
    xlabel('城市位置横坐标')
    ylabel('城市位置纵坐标')
    title(['蚁群算法优化路径(最短距离:' num2str(Shortest_Length) ')'])
    figure(2)
    plot(1:iter_max,Length_best,'b',1:iter_max,Length_ave,'r:')
    legend('最短距离','平均距离')
    xlabel('迭代次数')
    ylabel('距离')
    title('各代最短距离与平均距离对比')
    
    %%
    
    二维路线规划代码:
    %% 清空环境
    clc;clear
    
    %% 障碍物数据
    position = load('barrier.txt');
    plot([0,200],[0,200],'.');
    hold on
    B = load('barrier.txt');
    xlabel('km','fontsize',12)
    ylabel('km','fontsize',12)
    title('二维规划空间','fontsize',12)
    %% 描述起点和终点
    S = [20,180];
    T = [160,90];
    plot([S(1),T(1)],[S(2),T(2)],'.');
    
    % 图形标注
    text(S(1)+2,S(2),'S');
    text(T(1)+2,T(2),'T');
     
    %% 描绘障碍物图形
    fill(position(1:4,1),position(1:4,2),[0,0,0]);
    fill(position(5:8,1),position(5:8,2),[0,0,0]);
    fill(position(9:12,1),position(9:12,2),[0,0,0]);
    fill(position(13:15,1),position(13:15,2),[0,0,0]);
    
    % 下载链路端点数据
    L = load('lines.txt');
     
    %% 描绘线及中点
    v = zeros(size(L));
    for i=1:20
        plot([position(L(i,1),1),position(L(i,2),1)],[position(L(i,1),2)...
            ,position(L(i,2),2)],'color','black','LineStyle','--');
        v(i,:) = (position(L(i,1),:)+position(L(i,2),:))/2;
        plot(v(i,1),v(i,2),'*');
        text(v(i,1)+2,v(i,2),strcat('v',num2str(i)));
    end
     
    %% 描绘可行路径
    sign = load('matrix.txt');
    [n,m]=size(sign);
     
    for i=1:n
        
        if i == 1
            for k=1:m-1
                if sign(i,k) == 1
                    plot([S(1),v(k-1,1)],[S(2),v(k-1,2)],'color',...
                        'black','Linewidth',2,'LineStyle','-');
                end
            end
            continue;
        end
        
        for j=2:i
            if i == m
                if sign(i,j) == 1
                    plot([T(1),v(j-1,1)],[T(2),v(j-1,2)],'color',...
                        'black','Linewidth',2,'LineStyle','-');
                end
            else
                if sign(i,j) == 1
                    plot([v(i-1,1),v(j-1,1)],[v(i-1,2),v(j-1,2)],...
                        'color','black','Linewidth',2,'LineStyle','-');
                end
            end
        end
    end
    path = DijkstraPlan(position,sign);
    j = path(22);
    plot([T(1),v(j-1,1)],[T(2),v(j-1,2)],'color','yellow','LineWidth',3,'LineStyle','-.');
    i = path(22);
    j = path(i);
    count = 0;
    while true
        plot([v(i-1,1),v(j-1,1)],[v(i-1,2),v(j-1,2)],'color','yellow','LineWidth',3,'LineStyle','-.');
        count = count + 1;
        i = j;
        j = path(i);
        if i == 1 || j==1
            break;
        end
    end
    plot([S(1),v(i-1,1)],[S(2),v(i-1,2)],'color','yellow','LineWidth',3,'LineStyle','-.');
    
    
    count = count+3;
    pathtemp(count) = 22;
    j = 22;
    for i=2:count
        pathtemp(count-i+1) = path(j);
        j = path(j);
    end
    path = pathtemp;
    path = [1     9     8     7    13    14    12    22];
    
    %% 蚁群算法参数初始化
    pathCount = length(path)-2;          %经过线段数量
    pheCacuPara=2;                       %信息素计算参数
    pheThres = 0.8;                      %信息素选择阈值
    pheUpPara=[0.1 0.0003];              %信息素更新参数
    qfz= zeros(pathCount,10);            %启发值
    
    phePara = ones(pathCount,10)*pheUpPara(2);         %信息素
    qfzPara1 = ones(10,1)*0.5;           %启发信息参数
    qfzPara2 = 1.1;                      %启发信息参数
    m=10;                                %种群数量
    NC=500;                              %循环次数
    pathk = zeros(pathCount,m);          %搜索结果记录
    shortestpath = zeros(1,NC);          %进化过程记录
     
    %% 初始最短路径
    dijpathlen = 0;
    vv = zeros(22,2);
    vv(1,:) = S;
    vv(22,:) = T;
    vv(2:21,:) = v;
    for i=1:pathCount-1
    dijpathlen = dijpathlen + sqrt((vv(path(i),1)-vv(path(i+1),1))^2+(vv(path(i),2)-vv(path(i+1),2))^2);
    end
    LL = dijpathlen;
     
    %% 经过的链接线
    lines = zeros(pathCount,4);
    for i = 1:pathCount
        lines(i,1:2) = B(L(path(i+1)-1,1),:);
        lines(i,3:4) = B(L(path(i+1)-1,2),:);
    end
     
    %% 循环搜索
    for num = 1:NC
        
        %% 蚂蚁迭代寻优一次
        for i=1:pathCount
            for k=1:m
                q = rand();
                qfz(i,:) = (qfzPara2-abs((1:10)'/10-qfzPara1))/qfzPara2; %启发信息
                if q<=pheThres%选择信息素最大值
                    arg = phePara(i,:).*(qfz(i,:).^pheCacuPara);
                    j = find(arg == max(arg));
                    pathk(i,k) = j(1);
                else  % 轮盘赌选择
                    arg = phePara(i,:).*(qfz(i,:).^pheCacuPara);
                    sumarg = sum(arg);
                    qq = (q-pheThres)/(1-pheThres);
                    qtemp = 0;
                    j = 1;
                    while qtemp < qq
                        qtemp = qtemp + (phePara(i,j)*(qfz(i,j)^pheCacuPara))/sumarg;
                        j=j+1;
                    end
                    j=j-1;
                    pathk(i,k) = j(1);
                end
                % 信息素更新
                phePara(i,j) = (1-pheUpPara(1))*phePara(i,j)+pheUpPara(1)*pheUpPara(2);
            end
        end
        
        %% 计算路径长度
        len = zeros(1,k);
        for k=1:m
            Pstart = S;
            Pend = lines(1,1:2) + (lines(1,3:4)-lines(1,1:2))*pathk(1,k)/10;
            for l=1:pathCount
                len(1,k) = len(1,k)+sqrt(sum((Pend-Pstart).^2));
                Pstart = Pend;
                if l<pathCount
                    Pend = lines(l+1,1:2) + (lines(l+1,3:4)-lines(l+1,1:2))*pathk(l+1,k)/10;
                end
            end
            Pend = T;
            len(1,k) = len(1,k)+sqrt(sum((Pend-Pstart).^2));
        end
        
        %% 更新信息素
        % 寻找最短路径
        minlen = min(len);
        minlen = minlen(1);
        minant = find(len == minlen);
        minant = minant(1);
        
        % 更新全局最短路径
        if minlen < LL
            LL = minlen;
        end
        
        % 更新信息素
        for i=1:pathCount
            phePara(i,pathk(i,minant)) = (1-pheUpPara(1))* phePara(i,pathk(i,minant))+pheUpPara(1)*(1/minlen);
        end
        shortestpath(num) = minlen;
    end
    
    figure;
    plot(1:NC,shortestpath,'color','blue');
    hold on
    % plot(1:NC,dijpathlen,'color','red');
    ylabel('路径总长度');
    xlabel('迭代次数');
    
    function path = DijkstraPlan(position,sign)
    %% 基于Dijkstra算法的路径规划算法
    %position    input     %节点位置
    %sign        input     %节点间是否可达
     
    %path        output    %规划路径
     
    %% 计算路径距离
    cost = ones(size(sign))*10000;
    [n,m] = size(sign);
    for i = 1:n
        for j = 1:m
            if sign(i,j) == 1
                cost(i,j) = sqrt(sum((position(i,:)-position(j,:)).^2));
            end
        end
    end
     
    %% 路径开始点
    dist = cost(1,:);             %节点间路径长度           
    s = zeros(size(dist));        %节点经过标志
    s(1) = 1;dist(1) = 0;
    path = zeros(size(dist));     %依次经过的节点
    path(1,:) = 1;
     
    %% 循环寻找路径点
    for num = 2:n   
        
        % 选择路径长度最小点
        mindist = 10000;
        for i = 1:length(dist)
            if s(i) == 0
                if dist(i)< mindist
                    mindist = dist(i);
                    u = i;
                end
            end
        end
        
        % 更新点点间路径
        s(u) = 1;
        for w = 1:length(dist)
            if s(i) == 0
                if dist(u)+cost(u,w) < dist(w)
                    dist(w) = dist(u)+cost(u,w);
                    path(w) = u;
                end
            end
        end
    end
    
    三维路线规划代码:
    %% 该函数用于演示基于蚁群算法的三维路径规划算法
    
    %% 清空环境
    clc
    clear
    
    %% 数据初始化
    
    %下载数据
    load  HeightData HeightData
    
    %网格划分
    LevelGrid=10;
    PortGrid=21;
    
    %起点终点网格点 
    starty=10;starth=4;
    endy=8;endh=5;
    m=1;
    %算法参数
    PopNumber=10;         %种群个数
    BestFitness=[];    %最佳个体
    
    %初始信息素
    pheromone=ones(21,21,21);
    
    %% 初始搜索路径
    [path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,pheromone, ...
        HeightData,starty,starth,endy,endh); 
    fitness=CacuFit(path);                          %适应度计算
    [bestfitness,bestindex]=min(fitness);           %最佳适应度
    bestpath=path(bestindex,:);                     %最佳路径
    BestFitness=[BestFitness;bestfitness];          %适应度值记录
     
    %% 信息素更新
    rou=0.2;
    cfit=100/bestfitness;
    for i=2:PortGrid-1
        pheromone(i,bestpath(i*2-1),bestpath(i*2))= ...
            (1-rou)*pheromone(i,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
    end
        
    %% 循环寻找最优路径
    for kk=1:100
         
        %% 路径搜索
        [path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,...
            pheromone,HeightData,starty,starth,endy,endh); 
        
        %% 适应度值计算更新
        fitness=CacuFit(path);                               
        [newbestfitness,newbestindex]=min(fitness);     
        if newbestfitness<bestfitness
            bestfitness=newbestfitness;
            bestpath=path(newbestindex,:);
        end 
        BestFitness=[BestFitness;bestfitness];
        
        %% 更新信息素
        cfit=100/bestfitness;
        for i=2:PortGrid-1
            pheromone(i,bestpath(i*2-1),bestpath(i*2))=(1-rou)* ...
                pheromone(i,bestpath(i*2-1),bestpath(i*2))+rou*cfit;
        end
     
    end
    
    %% 最佳路径
    for i=1:21
        a(i,1)=bestpath(i*2-1);
        a(i,2)=bestpath(i*2);
    end
    figure(1)
    x=1:21;
    y=1:21;
    [x1,y1]=meshgrid(x,y);
    mesh(x1,y1,HeightData)
    axis([1,21,1,21,0,2000])
    hold on
    k=1:21;
    plot3(k(1)',a(1,1)',a(1,2)'*200,'--o','LineWidth',2,...
                           'MarkerEdgeColor','k',...
                           'MarkerFaceColor','g',...
                           'MarkerSize',10)
    plot3(k(21)',a(21,1)',a(21,2)'*200,'--o','LineWidth',2,...
                           'MarkerEdgeColor','k',...
                           'MarkerFaceColor','g',...
                           'MarkerSize',10)
                       text(k(1)',a(1,1)',a(1,2)'*200,'S');
    text(k(21)',a(21,1)',a(21,2)'*200,'T');
    xlabel('km','fontsize',12);
    ylabel('km','fontsize',12);
    zlabel('m','fontsize',12);
    title('三维路径规划空间','fontsize',12)
    set(gcf, 'Renderer', 'ZBuffer')
    hold on
    plot3(k',a(:,1)',a(:,2)'*200,'--o')
    
    %% 适应度变化
    figure(2)
    plot(BestFitness)
    title('最佳个体适应度变化趋势')
    xlabel('迭代次数')
    ylabel('适应度值')
    
    function fitness=CacuFit(path)
    %% 该函数用于计算个体适应度值
    %path       input     路径
    %fitness    input     路径
    
    [n,m]=size(path);
    for i=1:n
        fitness(i)=0;
        for j=2:m/2
            %适应度值为长度加高度
            fitness(i)=fitness(i)+sqrt(1+(path(i,j*2-1)-path(i,(j-1)*2-1))^2 ...
                +(path(i,j*2)-path(i,(j-1)*2))^2)+abs(path(i,j*2));
        end
    End
    
    function qfz=CacuQfz(Nexty,Nexth,Nowy,Nowh,endy,endh,abscissa,HeightData)
    %% 该函数用于计算各点的启发值
    %Nexty Nexth    input    下个点坐标
    %Nowy Nowh      input    当前点坐标
    %endy endh      input    终点坐标
    %abscissa       input    横坐标
    %HeightData     input    地图高度
    %qfz            output   启发值
    
    %% 判断下个点是否可达
    if HeightData(Nexty,abscissa)<Nexth*200
        S=1;
    else
        S=0;
    end
    
    %% 计算启发值
    %D距离
    D=50/(sqrt(1+(Nowh*0.2-Nexth*0.2)^2+(Nexty-Nowy)^2)+sqrt((21-abscissa)^2 ...
        +(endh*0.2-Nexth*0.2)^2+(endy-Nowy)^2));
    %计算高度
    M=30/abs(Nexth+1);
    %计算启发值
    qfz=S*M*D;
    
    
    
        
    
    function [path,pheromone]=searchpath(PopNumber,LevelGrid,PortGrid,pheromone,HeightData,starty,starth,endy,endh)
    %% 该函数用于蚂蚁蚁群算法的路径规划
    %LevelGrid     input    横向划分格数
    %PortGrid      input    纵向划分个数
    %pheromone     input    信息素
    %HeightData    input    地图高度
    %starty starth input    开始点
    %path          output   规划路径
    %pheromone     output   信息素
    
    %% 搜索参数
    ycMax=2;   %蚂蚁横向最大变动
    hcMax=2;   %蚂蚁纵向最大变动
    decr=0.9;  %信息素衰减概率
    
    %% 循环搜索路径
    for ii=1:PopNumber
        
        path(ii,1:2)=[starty,starth];  %记录路径
        NowPoint=[starty,starth];      %当前坐标点
        
        %% 计算点适应度值
        for abscissa=2:PortGrid-1
            %计算所有数据点对应的适应度值
            kk=1;
            for i=-ycMax:ycMax
                for j=-hcMax:hcMax
                    NextPoint(kk,:)=[NowPoint(1)+i,NowPoint(2)+j];
                    if (NextPoint(kk,1)<20)&&(NextPoint(kk,1)>0)&&(NextPoint(kk,2)<20)&&(NextPoint(kk,2)>0)
                        qfz(kk)=CacuQfz(NextPoint(kk,1),NextPoint(kk,2),NowPoint(1),NowPoint(2),endy,endh,abscissa,HeightData);
                        qz(kk)=qfz(kk)*pheromone(abscissa,NextPoint(kk,1),NextPoint(kk,2));
                        kk=kk+1;
                    else
                        qz(kk)=0;
                        kk=kk+1;
                    end
                end
            end
            
            
            %选择下个点
            sumq=qz./sum(qz);
        
            pick=rand;
            while pick==0
                pick=rand;
            end
            
            for i=1:25
                pick=pick-sumq(i);
                if pick<=0
                    index=i;
                    break;
                end
            end
            
            oldpoint=NextPoint(index,:);
            
            %更新信息素
            pheromone(abscissa+1,oldpoint(1),oldpoint(2))=0.5*pheromone(abscissa+1,oldpoint(1),oldpoint(2));
            
            %路径保存
            path(ii,abscissa*2-1:abscissa*2)=[oldpoint(1),oldpoint(2)];    
            NowPoint=oldpoint;
            
        end
        path(ii,41:42)=[endy,endh];
    end
    
    展开全文
  • WEB前端简历模板

    万次阅读 多人点赞 2019-10-15 17:15:36
    6、编写项目开发总结,把错误和解决方案,兼容性问题如何解决写成文档。 项目经验 项目一、XXXXXX 开发环境:Window7、chrome、360浏览器、ie、firefox 开发工具:HBuilder、photoshop、Adobe Dreamweaver ...

    WEB前端简历模板

    详细资料

                 姓名:XXX  出生年月:XXXX年X月                                            
    
                     名 族:X族                                 政治面貌:XXXX                                                       
    
                     Q Q:1000000000                      联系电话:110110110110                                             
    
                     E-Mail:xxx@163.com           博客:http://xxx.com
    

    教育背景

                       时间:20XX/0X----20XX/0X                                          学校:XXXX大学
    
                       专业:XXXX                                                             学历:本科
    
                       主修课程:XXXXXXXXXXXXXXXXXXXXXXXX
    
                       获得奖励:XX一等奖、XX国家奖学金
    
                       在校经历:(1)XXX  (2)XXXXXXX     (3)XXXXXXXX
    

    技能特长

    1.精通DIV+CSS布局的HTML代码编写,熟练手写符合W3C标准的代码,能够根据交互原型和UI设计图完整制作出网页;

    2.熟悉Javascript、css3和html5,且能熟练运用JQuery框架实现网页常用特效,掌握面向对象编程思想;

    3.熟练应用dom、xml、json等相关技术;

    4.熟悉Bootstrap前端框架,了解Nodejs和Angularjs以及less,sass、git、github等技术和团队协作开发工具;

    5.具备抗压能力、且有一定自学能力,能够熟练阅读使用中文API,英文API可以大概看懂并运用;

    6.担任项目组长并组织团队开发过电商、企业和移动端网站前端项目;

    工作经历

      (20XX.6-20XX.8)   XXXXXXXX有限公司                            实习生
    

    1、设置地区网络架构(办公楼、园区)

    2、配置网络路由器协议(RIP、OSPF)

    3、进行真机操作配置

      (20XX.7-20XX.11)  XXXXXX公司                                       实习生
    

    1、参与多个不同项目的前端开发工作:包括企业站、电商网站、个人博客、移动端网站等;

    2、参与讨论项目分工和编写工作计划;

    3、根据项目需求开发项目前端页面,还原效果图,将psd文件写出html页面,并适应各主流浏览器;

    4、使用js、jq、h5和c3实现页面特效,并解决特效兼容性问题;

    5、使用浏览器Firebug工具进行页面调试解决BUG;

    6、编写项目开发总结,把错误和解决方案,兼容性问题如何解决写成文档。

    项目经验

    项目一、XXXXXX

    开发环境:Window7、chrome、360浏览器、ie、firefox

    开发工具:HBuilder、photoshop、Adobe Dreamweaver

    项目描述:雷锋网是深圳英鹏信息技术有限公司于2011年创办,从起始的科技博客,逐步发展成一个科技信息与产品服务平台。雷锋网拥有三大业务单元,深入移动互联网与智能硬件行业,为厂商及用户提供了涵盖媒体资讯、社会化传播、产品改进和预售等多元系统服务。在智能硬件领域,雷锋网已当之无愧处于领先媒体。

    责任描述:

    1、按照psd文档内容切好图片,准备布局;

    2、使用html、css完成网页布局;

    3、进一步使用H5和CSS3进行页面效果优化;

    4、检查代码,测试兼容性,修复bug;

    5、总结并提交开发文档。

    项目二、XXXXX

    开发环境:Window7、chrome、360浏览器、ie、firefox

    开发工具:HBuilder、photoshop、WampServer、Adobe Dreamweaver

    项目描述:联东集团,创立于1991年。经过二十多年的发展,形成了集产业园区运营、金融投资和模板钢结构为一体的集团化企业。产业园区作为联东集团主 要业务板块,独创聚合U模式,以”联东U谷”为品牌,成功进驻北京、上海、天津、重庆、沈阳、济南、青岛、无锡、南京、苏州、杭州、合肥、郑州、成都等二十 多座城市,产业园区项目已达六十多个,入园企业4000多家,是目前国内规模最大、产品系列最全、入住客户最多、运营体系最完善的产业园区专业运营商。

    责任描述:

    1、根据项目做出个人开发计划,搭建开发环境进行项目开发;

    2、使用DIV+CSS布局模式完成网页布局;

    3、使用原生js写出网页各种特效;

    4、添加公共部分,整理代码,完成页面优化;

    5、处理兼容性问题,使用浏览器Firebug工具查询bug并进行修复;

    6、总结并提交开发文档。

    项目三、XXXX

    开发环境:Window7、chrome、360浏览器、ie、firefox

    开发工具:HBuilder、photoshop、WampServer、Adobe Dreamweaver

    项目描述:小米官网是小米科技有限公司的官方网站,小米是一家专注于高端智能手机自主研发的移动互联网公司,由雷军组建。已获得来自Morningside、启 明、IDG和小米团队4100万美元投资,其中小米团队56人投资1100万美元,公司估值400亿美元。其他核心产品有:基于Android深度开发的第三方操作系统 MIUI,智能手机即时通讯工具米聊,小米电视,和小米盒子,小米手机、MIUI、米聊是小米公司旗下三大核心业务。

    责任描述:

    1、整理整个项目内容,分配工作,给出公共部分样式代码;

    2、使用DIV+CSS布局模式完成网页布局;

    3、进一步使用H5和CSS3进行页面效果优化;

    4、使用原生js和JQuery框架写出网页各种特效;

    5、对各大主流浏览器进行兼容性处理,查询bug并进行修复;

    6、总结并提交开发文档。

    展开全文
  • 遗传算法(二)改进:自适应、遗传退火算法

    万次阅读 多人点赞 2017-08-25 13:51:31
    但该方法只是应用了模拟退火思想中“拉伸”的思想,无法解决早熟问题,并没有将模拟退火算法的 爬山 能力融入遗传算法中。 2.SAM(退火式变异) 遗传算法有三种明显劣势 3 ,一是编码所占用的储存空间可能...
  • FPGA现状

    万次阅读 多人点赞 2019-07-16 19:51:42
    同时FPGA也有自身的很多需要解决问题,FPGA限制因素:成本、功耗和编程设计。 市场空间: 根据权威市场调研机构Gartner数据显示,2014年全球FPGA市场总规模达到50亿美金,其中,中国的市场份额有15亿美金...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?   5 3、测试的策略有哪些? ................................................................................
  • 总之,有了位置和姿态,我们就可以解决机器人的定位问题,以及坐标转换的问题。 该项目提出这样一个设想:在不考虑各腿的协同运动时,可以简单地把机器人当成一个刚体,因此其运动可看作是空间中刚体的运动,这里我们...
  • 《人工智能杂记》人工智能时间简史

    万次阅读 多人点赞 2018-03-13 08:54:55
    所以它有两个目标,一个是算法的提升,如何解决数据稀少或怎么自动能够产生模拟数据的问题,另一个是自适应能力,当数据产生变化的时候,它能够去适应变化,而不是能力有所下降。所有一系列这些问题,都是下一个五或...
  • 毕业设计 大学生心理健康管理平台

    千次阅读 多人点赞 2020-03-05 17:17:24
    大学室友所选的课程题目,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 1.系统概述 本次课题一共分为三类角色,即学生,教师以及管理员。每个角色在登陆平台后经过研究调查,分别设计出适应...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    如何解决这个问题呢?可用访问权限控制字,常用的访问权限控制字如下:private(私有),public(公有)。在数据成员或函数成员前增加访问权限控制字,可以指定该数据成员或函数成员的访问权限。 私有数据成员只能被类...
  • 浅谈傅里叶变换、小波变换、HHT变换

    千次阅读 多人点赞 2019-08-29 12:18:42
    浅谈傅里叶变换、小波变换、HHT变换一、傅里叶变换1.1傅里叶变换介绍二、小波变换2.1小波变换正反变换公式2.2小波变换适应场景及其优缺点2.3小波变换的应用三、HHT变换3.1HHT产生的背景3.1 HHT变换介绍3.2 HHT对信号...
  • 点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!无监督域适应(UDA)旨在把知识从有标签源域数据迁移到无标签目标域数据上。现有的基于自训练(self-training)的UDA方...
  • C语言学习—给学习C语言初学者的建议

    万次阅读 多人点赞 2017-09-16 16:05:03
    C语言是一门“古老”而又很有前途的计算机编程语言。...这是一个现实的问题,如果你是非计算机专业的大学生,大部分人对C语言是恐惧的,因为(挂科率高)你懂得……。而如果你是小学生或初中生,倒也不用担
  • 实习期间遇到的5大问题解决方案

    万次阅读 2012-12-08 17:32:42
    郑重声明:本文纯属Fans同学的个人见解,仅供参考,欢迎拍砖。 不带任何感情色彩,无论是讽刺、褒扬,还是抱怨、感叹,纯属读者的个人感觉,与Fans无关。...遇到问题不可怕,关键在于解决问题的方法。
  • 尚未解决的10个最困难的数学问题

    万次阅读 2019-09-29 19:15:09
    《尚未解决的10个最困难的数学问题》 1.科拉兹猜想 2.哥德巴赫猜想 3.双素猜想 4.黎曼假设 5.Birch和Swinnerton-Dyer猜想 6.接吻数问题 7.难题 8.大型基数计划 9.与???? + e有何关系? 10. ????理性...
  • 问题描述 在旅行商问题中,给定一组城市及每座城市与其他城市之间的旅行成本,目标是找出一条经过所有城市的路径,要求该路径只经过每座城市一次并且旅行总成本最低。从任意一座城市出发,经过每一座城市之后,再...
  • 遗传算法解决旅行商问题(Python版)

    千次阅读 多人点赞 2020-05-05 11:28:56
    遗传算法解决旅行商问题(Python版) 一、问题描述 TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他...
  • GA(遗传算法) 解决TSP问题 Python实现

    千次阅读 2019-08-03 19:49:40
    TSP:Traveling Salesman Problem GA:Genetic Algorithm ...2. 即TSP问题、这里用到GA解决 找了别人的GA板子,改动之后成型 清华大学【数据挖掘:进化计算】 进化算法 Evolutionary Algorithms (...
  • 基于遗传算法解决TSP问题(MATLAB实现)

    千次阅读 多人点赞 2019-11-19 22:52:15
    1.遗传算法解决旅行商问题 1.1旅行商问题与遗传算法 旅行商问题:一位销售商从n个城市中的某一城市出发,不重复地走完其余n-1个城市并回到原出发点,在所有可能路径中求出路径长度最短的一条。 旅行商的路线可以...
  • 我们可以看到今天大部分AI的公有云服务,都在试图使用迁移学习来解决这部分问题,但是这些AI公有云服务忽略了一个问题,他们这次不是提供商品让最终消费者来选择买什么,而是需要提供一个互动的方式了解消费者要做...
  • 北京邮电大学计算机考研经验分享

    千次阅读 多人点赞 2020-01-10 21:12:26
    北京邮电大学计算机考研经验分享 北京邮电大学计算机类专业考研比较复杂,主要由于计算机类的学院众多,而且北邮招生规则不同于其他学校,所以造成同学们存在很多困惑,那么我将为大家介绍下北邮计算机/网研/网安/...
  • 基于物品的协同过滤算法实现图书推荐系统

    万次阅读 多人点赞 2019-09-14 21:20:24
    对于推荐系统来说,开发过程中会遇到各种各样的问题,所以在编写程序和运行代码的过程中,关于设计的逻辑和设计过程,都是一个不断发现问题解决问题的过程,不断完善以达到预期的功能才是我们希望看到的。...
  • 团辅背景 大学新生进入大学就读 由于环境的变更与角色的变化 许多新生入 学不久就产生了种种心理困惑 特别是在学习方面 课程的庞杂 教学方法的多 样教学进度的跳跃等使他们难以适应产生一系列学习性问题这些问题如 ...
  • 大学四年,我是如何学习编程的?

    千次阅读 多人点赞 2019-12-04 23:40:27
    大学四年,我专业是计算机专业, 但大家也知道,学校的课程和专业不是那么互相连贯,并且形成体系。 大学里有基础的Java, 计算机原理,...这里简单介绍一下: 设计模式是软件设计中常见问题的一般可重复解决方...
  • 当代大学生常见痛点调研

    千次阅读 2019-09-25 21:00:23
    很多时候就连普通的体育测试都通过不了,但是由于很多人体能素质较差也导致很多时候会产生各种疾病,所以我认为当代大学生体能素质问题是一大痛点。因此,我认为我们学校应该多开展体育活动,重视大学生体育活动的...
  • 大学中一小段短暂的停留后,陡然而至的紧张学习生活,扑面而来的各种信息,亲身参与的各种活动,需要独立面对的各种问题,同学之间存在的巨大差异,使大学的新主人由衷地发出了感叹:现实中的大学,与高三艰苦奋斗...
  • 一、作业车间调度问题描述 作业车间调度问题(Job Shop Scheduling, JSP)是最经典的几个NP-hard问题之一。其应用领域极其广泛,涉及航母调度,机场飞机调度,港口码头货船调度,汽车加工流水线等。 JSP问题描述...
  • 本实验采用遗传算法实现了旅行商问题的模拟求解,并在同等规模问题上用最小生成树算法做了一定的对比工作。遗传算法在计算时间和占用内存上,都远远优于最小生成树算法。 程序采用Microsoft visual studio 2008 ...
  • OOM问题解决实践

    万次阅读 2021-10-26 12:55:54
    我们的项目是一款致力于解决大学课堂教学效率低下、教师学生课堂教学互动性不强这一现实问题而设计的独立的课堂教学辅助系统。系统主体分为两个相互关联的软件。E课的pc端的用户是大学授课教师,E课APP是服务学生的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,320
精华内容 21,328
关键字:

如何解决大学适应问题