Hero Circle Shape
Hero Moon Shape
Hero Right Shape
比特派官网苹果版下载|balloon气球

比特派官网苹果版下载|balloon气球

  • 作者: 比特派官网苹果版下载
  • 2024-03-17 04:34:49

气球 (豆瓣)

气球 (豆瓣)

登录/注册

下载豆瓣客户端

豆瓣 6.0 全新发布

×

豆瓣

扫码直接下载

iPhone

·

Android

豆瓣

读书

电影

音乐

同城

小组

阅读

FM

时间

豆品

豆瓣电影

搜索:

影讯&购票

选电影

电视剧

排行榜

影评

2023年度榜单

2023年度报告

气球 Ballon

(2018)

导演: 米夏埃尔·赫尔比希

编剧: 基·霍普金斯 / 蒂洛·罗斯切森 / 米夏埃尔·赫尔比希

主演: 弗莱德里奇·穆克 / 卡罗利妮·舒赫 / 大卫·克劳斯 / 艾丽西娅·冯·里特贝格 / 托马斯·克莱舒曼 / 乔纳斯·霍登里德尔 / 蒂尔曼·多布勒 / 克里斯蒂安·内特 / 罗纳德·库克利斯 / 塞巴斯蒂安·胡克 / 乌尔里奇·布兰德霍夫 / 柏恩德·麦克·莱德 / 凯·伊沃·保利兹 / 贝恩德·斯特格曼 / 安婕·特拉乌

类型: 剧情 / 惊悚 / 历史

制片国家/地区: 德国

语言: 德语 / 英语

上映日期: 2018-09-27(德国)

片长: 125分钟

又名: 翻墙热气球(港) / 奇迹热气球(台) / Der Ballon / Balloon / Le Vent de la Liberté

IMDb: tt7125774

豆瓣评分

引用

8.4

58869人评价

5星

34.4%

4星

51.4%

3星

13.0%

2星

0.9%

1星

0.3%

好于 94% 历史片

好于 90% 剧情片

想看

看过

评价:

 

写短评

 

写影评

分享到

  

推荐

气球的剧情简介

· · · · · ·

  故事发生在1979年冷战期间,冈特(大卫·克劳斯 David Kross 饰)和皮特(弗莱德里奇·穆克 Friedrich Mücke 饰)身处东德统治者的铁腕政权之下,虽然被限制了行动,但是两人并没有放弃对于自由的追求,他们利用长达两年的时间,策划了一起惊天大逃亡。

  两人动用了手边一切能够得到的资源,制作了一个巨大的热气球,他们打算用最朴素也是最直接的方式,带领着他们的家人逃往西德。然而,就在一行人即将越过边境之际,热气球却因为意外而坠毁了,与此同时,他们的行动也引起了秘密警察的注意,针对他们的追捕很快展开了。一边躲避追兵,冈特和皮特还要一边想方设法制作新的热气球,一场与时间的竞赛开始了。

©豆瓣

气球的演职员

· · · · · ·

(

全部 30

)

米夏埃尔·赫尔比希

导演

弗莱德里奇·穆克

饰 Peter Strelzyk

卡罗利妮·舒赫

饰 Doris Strelzyk

大卫·克劳斯

饰 Günter Wetzel

艾丽西娅·冯·里特贝格

饰 Petra Wetzel

托马斯·克莱舒曼

饰 Oberstleutnant Seidel

气球的视频和图片

· · · · · ·

(

预告片4 | 图片404 · 添加

)

预告片

喜欢这部电影的人也喜欢

· · · · · ·

芝加哥七君子审判

8.6

1917

8.5

波斯语课

8.1

沉默的教室

8.4

冒牌上尉

8.6

地雷区

8.7

万湖会议

8.1

西线无战事

8.5

灰猎犬号

7.8

最后的决斗

8.3

我要写短评

气球的短评

· · · · · ·

(

全部 19219 条

)

热门 / 

最新 / 

好友

1107

有用

Die Katze

看过

2019-03-24 10:59:11

依靠工程技术能力争取自由,非常德国了。

467

有用

西袄补袄

看过

2018-10-20 03:18:20

我给了5星,因为这么久以来,终于又看到好看的德国电影了。德国人,一场战争一堵墙给了他们多少创作的题材啊!从头到尾我心都是悬着的,最后柏林墙被推倒的时候真的哭的不行不行。

235

有用

梦朝大海

看过

2019-04-12 19:23:37

如果一个国家好的让人想离开,那样的一个国家值得爱吗?

1246

有用

朝暮雪

看过

2019-04-12 17:55:00

宁愿被判叛国罪,宁愿死,也不愿意留在东德,因为自由比生命更加可贵。

感谢幼儿园老师能明辨是非、分清对错,没有赶尽杀绝。

66

有用

石头摇篮

看过

2021-05-23 08:15:11

幼儿园老师和邻居秘密警察的女儿,就是现身说法版的“你有抬高枪口一厘米的权利”。

>

更多短评

19219条

为什么被折叠?

有一些短评被折叠了

评论被折叠,是因为发布这条评论的账号行为异常。评论仍可以被展开阅读,对发布人的账号不造成其他影响。如果认为有问题,可以联系豆瓣电影。

你关注的人还没写过短评

我要写影评

气球的影评 · · · · · ·

( 全部 132 条 )

热门

最新

好友

我的画笔哪去了

2019-04-08 21:18:15

逃离东德背后的时代背景和原因

二战结束后,再次沦为战败国的德国根据雅尔塔协定和波茨坦协定,分别由美、英、法、苏四国占领。1949年 5月23日,美、英、法三国占领区合并成立了德意志联邦共和国。同年10月7日,东部的苏占区成立了德意志民主共和国。德国从此正式分裂为两个主权国家。 故事就发生在东德边境...

 (展开)

1282

10

503回应

收起

Jacqueline

2019-04-19 21:33:46

时隔40年,这个发生在德国的神奇大逃亡终于有了德国人自己的版本

《气球》翻拍自1981年的老片《偷渡人》。当年在真实事件发生不到三年之后,迪士尼就将这个奇迹般的逃亡搬上了银幕。在当时,这部电影被誉为是“迪士尼拍过的最严肃的电影”。不过,因为由迪士尼筹拍,演员几乎都是英国和美国人,主角也是老牌英国演员约翰·赫特。 直到近30年后...

 (展开)

363

2

28回应

收起

玛妮的自我修养

2019-05-24 21:31:53

为了「翻墙」,德国人有多硬核

这篇影评可能有剧透

玛妮最近看了《我们是真正的朋友》,暗自下定决心:将来一定要去缅甸坐一次热气球! 节目第一期,大S、小S、阿雅和范晓萱到达缅甸的第一件事,就是完成一趟“天空之旅”,四个相识二十年的闺蜜互相依靠在空中哼着小曲欣赏夕阳,实在太浪漫了! 现在我们提到热气球,第一反应大...

 (展开)

162

3

20回应

收起

朝暮雪

2019-04-16 09:23:12

东德硬生生把一个个平民逼成了科学家

这篇影评可能有剧透

影片以极具冲击感的方式展开,一边是东德的一所学校,学生唱着“我们的祖国是大草原上的青草,是农田里的稻谷,人们热爱美丽的祖国”,校长在台上领导大家向东德宣誓效忠; 另一边,是边防军人乱枪打死一个个企图越过边境的百姓。 说好的祖国是大草原上的青草呢? 如果这个国家...

 (展开)

59

8

10回应

收起

cyberomeo

2019-04-06 13:07:15

#《气球》有哪些细思极恐的细节?

《气球》有哪些细思极恐的细节?

这篇影评可能有剧透

斯塔西到幼儿园问家庭情况 军人没有及时发现逃亡者而遭到整肃 主角之一无法上大学去学习物理完全是因为他爸在他五岁时逃往西德 酒店大堂的斯塔西 美国领事馆门囗的警察 毕业生宣誓爱国而校长要继续管教他们 布行职员要报警 精神分裂的秘密警察一方面忠于职守一方面又要看西德电...

 (展开)

78

1

14回应

收起

施威林先生

2022-04-07 12:34:17

《气球》真实事件的一些细节

这篇影评可能有剧透

节奏紧凑,不啰嗦,非常精彩。色调也特别顺眼。影片主题不用说了,真实的事件往往更加精彩。这里我搜集/翻译了一些背景资料,算是对电影的补充。 逃亡组合 皮特·施特崔克(Peter Strelzyk)是一名电工,以前当过前东德空军技师。冈特·韦则(Günter Wetzel)做过瓦匠。他俩之...

 (展开)

46

11回应

收起

管制菜刀

2020-03-09 18:17:31

#《气球》有哪些细思极恐的细节?

《气球》有哪些细思极恐的细节?

这篇影评可能有剧透

守墙士兵连自己为什么开枪都不知道就杀了平民,而他本来就是靠平民们交税养活的,扣上大帽子,人就可以做出很多可怕的事情 某些人擅自写了几句话,只因为他们有枪和狗,这些话就成了法律,有人违法就放狗开枪,这才是终极的邪恶 愚蠢的主角向美国求救,还以为美国会来酒店里接...

 (展开)

28

10

2回应

收起

森林旁边的树

2019-05-01 09:25:31

#《气球》有哪些细思极恐的细节?

《气球》有哪些细思极恐的细节?

这篇影评可能有剧透

当你只是上街买块大点布,就有人往上面汇报时候 当你只是恰巧在路边看到有辆路过的小汽车就可能被抓去讯问的时候 当你教小朋友们知识。就有军人过来盘问你的时候 当你只是走在路上,路过大使馆,就发现很多人在偷偷的看着你的时候。 这一切站在第一人称的角度,这样的生活,无...

 (展开)

40

2

26回应

收起

June

2019-07-08 00:29:18

我会给这部电影高分,如果它也是《窃听风暴》那时拍的话

这种题材的电影在豆瓣上一定会得高分的,不管它拍得好不好。 还好,这部电影拍得不错,如果它也是《窃听风暴》、《再见列宁》那个时期拍的话,我会给它一样的高分。 只不过,十多年后的今天,那个灯塔国已经不是它曾经的、和我们想像中的样子了;而政治课上讲的东西确实着人烦...

 (展开)

18

9

11回应

收起

巫岚

2019-12-22 09:52:22

《气球》有哪些细思极恐的细节?

出发之前,妈妈抱着小儿子在看相册。大儿子一边玩小人,一边喊着:“去死吧,叛国贼!” 想起小学时候,班上一个男生总被大家欺负,给他取绰号卖国贼。就因为他姓蒋。 叛国?国是什么?你连自由都不给我,还叫我爱你? 影片开头孩子们合唱的歌词,成人典礼上效忠国家的宣誓,不...

 (展开)

22

1

5回应

收起

>

更多影评

132篇

添加新讨论

讨论区

  ·  ·  ·  ·  ·  ·

正视历史,而不是回避

来自Wieve21

2 回应

2022-09-10 00:26:16

哪里可以看这部呢

来自Dale

1 回应

2024-03-14 23:11:34

西式主旋律vs中式主旋律 炸出一群双标香蕉人

来自阿尔卑斯

24 回应

2024-03-02 12:37:42

除了自己,没什么能阻止你们追求自由的脚步?自己...

来自haha123

39 回应

2024-02-08 00:51:23

电影里的秘密警察是不是“反应过度”了?

来自匿名用户

22 回应

2024-01-13 18:10:55

> 去这部影片的讨论区(全部99条)

关于《气球》的问题

· · · · · ·

(

全部5个

)

东德真的会为了一起翻墙事件就动用军队和直升机,这么大费周章吗?

1人回答

求最后女孩读信时的音乐是什么?

0人回答

>

全部5个问题

以下片单推荐

· · · · · ·

(

全部

)

★豆瓣高分电影榜★ (中)8.5-8.3分

(影志)

豆瓣电影【口碑榜】2023-09-11 更新

(影志)

陪我孤独终老的电影清单【灵魂篇】

(默)

你在放荡的孤独中闪闪发光

(玖號)

一个人的电影院

(灰烬周三)

谁在看这部电影

· · · · · ·

豆友Ry_x1XNIfY

2小时前

想看

林达

2小时前

想看

とう

今天凌晨

想看

72348人看过

 / 

158553人想看

订阅气球的评论:

feed: rss 2.0

© 2005-2024 douban.com, all rights reserved 北京豆网科技有限公司

关于豆瓣

· 在豆瓣工作

· 联系我们

· 法律声明

· 帮助中心

· 移动应用

· 豆瓣广告

balloon - 搜索 词典

oon - 搜索 词典 Rewards网页图片视频学术词典地图更多航班我的必应笔记本balloon美 [bəˈlun] 英 [bəˈluːn] n.气球;热气球adj.气球状的;(货物等)分量轻而体积大的v.涨大;乘热气球飞行网络汽球;玩具气球;飞船复数:balloons  现在分词:ballooning  过去式:ballooned  搭配同义词反义词v.+n.burst balloon,inflate balloonadj.+n.red balloon,blue balloon,latex balloon,yellow balloonv.deflatev.swell,distend,inflate,expand,puff outn.hot-air balloon,inflatable权威英汉双解英汉英英网络释义balloon显示所有例句n.1.气球a small bag made of very thin rubber that becomes larger and rounder when you fill it with air or gas. Balloons are brightly coloured and used as decorations or toys.to blow up/burst/pop a balloon吹起气球;使气球爆裂2.热气球a large balloon made of strong material that is filled with hot air or gas to make it rise in the air, usually carrying a basket for passengersIDMwhen the balloon goes up(informal)意料中的麻烦出现时;(不出所料)出乱子时when the trouble that you are expecting beginsv.1.[i]~ (out/up)(突然)膨胀,涨大to suddenly swell out or get biggerHer skirt ballooned out in the wind.她的裙子让风吹得鼓起来了。2.[i]乘热气球飞行to travel in a hot-air balloon as a sportn.1.轻气球,气球;气罐2.【印,纺】气圈3.【建】球饰4.【化】球形大烧瓶5.(漫画中人物的)讲话引线1.轻气球,气球;气罐2.【印,纺】气圈3.【建】球饰4.【化】球形大烧瓶5.(漫画中人物的)讲话引线v.1.激增2.用[坐]气球上升3.膨胀如气球4.〈美〉(演员)忘记台词5.使充气,使膨胀如气球1.激增2.用[坐]气球上升3.膨胀如气球4.〈美〉(演员)忘记台词5.使充气,使膨胀如气球adj.1.气球状的2.(货物等)分量轻而体积大的3.(分期付款)最后一笔大数目的n.1.a large strong bag filled with gas or hot air that can float in the air. Some balloons have a large basket hanging under them in which people can travel.; a small colored bag of thin rubber that you fill with air, used as a child’s toy or a decoration; a small bag that a doctor puts into a part of your body and fills with air in order to force something out2.a circle around the words spoken by characters in cartoon drawingsv.1.to become larger and rounder in shape2.to increase very quickly in amount or degree1.气球小学英语单词表总汇_百度文库 ... kite 风筝 balloon 气球 car 小汽车 ... wenku.baidu.com|基于9175个网页2.汽球小学英语词汇归类表(三年级上册----六年级下册) ... kite( 风筝) balloon( 汽球) box( 盒子) ... www.5ykj.com|基于1503个网页3.玩具气球大学英语四级考试大纲 - 豆丁网 ... ball n. 球,球状物;舞会 balloon n. 气球,玩具气球 banana n. 香蕉;芭蕉属植物 ... www.docin.com|基于308个网页4.热气球儿童游戏_小精灵儿童网站 ... Camera( 摄像机) Balloon( 热气球) Chinese Cap( 中国帽) ... www.060s.com|基于297个网页5.飞船新概念英语第二册单词表word版下载_百度文库 ... bag n. 手提包,钱包,袋 balloon n. 气球,飞船 bark vi. 吠叫,咆哮,怒吼 ... wenku.baidu.com|基于143个网页6.激增GRE反义大全(3) Gzu521.com我的学习网 ... balky 倔强的 balloon 激增,飞涨 balm 温和物质 ... www.gzu521.com|基于106个网页7.气球形裙服装英语电子小词典(j精华版)[中华纺织网论坛] ... Inverness 披肩外套 Balloon 气球形裙 Bell 钟形裙 ... bbs.texindex.com.cn|基于73个网页8.气球状的机械词典大全-机械资讯-马棚网(第33/627页) ... ballhead system; 球头系统 balloon; 气球,气球状的 balloon tire; 低压轮 …www.mapeng.net|基于47个网页更多释义收起释义例句释义:全部全部,气球气球,热气球热气球,气球状的气球状的,分量轻而体积大的分量轻而体积大的,涨大涨大,乘热气球飞行乘热气球飞行,汽球汽球,玩具气球玩具气球,飞船飞船类别:全部全部,口语口语,书面语书面语,标题标题,技术技术来源:全部全部,字典字典,网络网络难度:全部全部,简单简单,中等中等,难难更多例句筛选收起例句筛选1.Professor Fergusson plans to make aviation history by making his way across Africa by balloon.弗格森教授计划通过乘坐气球穿越非洲使其成为航空史上的里程碑。www.kuenglish.info2.If the implementation is just a bit insecure, a hole is opened on the boundary: the balloon deflates or, worst case, explodes.如果实现不是很安全,那么这个边界上就会出现漏洞:导致气球消气了,或者最糟糕的情况是气球炸了。www.ibm.com3.The slum in early spring nighttime, the sky is a balloon, a few slogans on the wall, an one female of male is turning on a light.早春夜间的贫民窟,天上是一颗气球,墙上是几条标语,一男一女正在开灯。bbs.17pr.com4.The new museum building looks like a balloon lying on its side ready to launch. Outside is a real balloon ready to take visitors for a ride.新的博物馆看上去象是一个气球卧着准备发射。外面是一个真的气球好像准备带游客去飞行。home.hjenglish.com5."We're going to go back to the United States soon, our life is there, " he said, holding a heart-shaped pink balloon.拿着一只心形粉红色气球,他说:“我们将很快回到美国,我们的生活在那里”dictsearch.appspot.com6.Before humans were sent up in the balloon, a test flight was made using three animals: a sheep, a duck, and a rooster.在热气球载人飞行之前,首先进行飞行试验的是三只动物:一只羊,一只鸭子和一只公鸡。bbs.qiuyang.com7.And the owner of the balloon wasn't very big. . . but he was big enough for George to see that he was angry!还有那个气球主人也不大……不过还够大,乔治看到他生气了!www.dreamkidland.cn8.To prevent scar tissue from returning, your doctor may give you estrogen and place a balloon in your uterus for up to a week after surgery.为了预防复发,医生能够会让你服雌激素,或术后一周在宫腔放气囊。www.51chati.com9.Bob mentioned the class presidency to Ted as a trial balloon to see if Ted might be interested in running.鲍勃向特德提到班主席职位以试探特德是否热衷于参加其竞选。wenwen.soso.com10.The balloon and stent are delivered to the heart area via a long catheter inserted into a blood vessel in the patient's thigh.气球和支架经导管通过患者大腿血管置入到心脏区域。www.suiniyi.com12345© 2024 Microsoft隐私声明和 Cookie法律声明广告帮

BALLOON中文(简体)翻译:剑桥词典

BALLOON中文(简体)翻译:剑桥词典

词典

翻译

语法

同义词词典

+Plus

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录

/

注册

中文 (简体)

查找

查找

英语-中文(简体)

balloon 在英语-中文(简体)词典中的翻译

balloonnoun [ C ] uk

Your browser doesn't support HTML5 audio

/bəˈluːn/ us

Your browser doesn't support HTML5 audio

/bəˈluːn/

Add to word list

Add to word list

A2 a small, very thin rubber bag that you blow air into or fill with a light gas until it is round in shape, used for decoration at parties or as a children's toy

气球

We tied balloons and streamers to the ceiling ready for the party.

我们把气球和彩带系在顶棚上,晚会已布置妥当。

(also hot-air balloon) a very large balloon that is filled with hot air or gas and can carry people in a basket (= open container ) hanging under it

热气球

People first flew in a balloon in 1783.

人类于1783年首次乘热气球飞行。

a

speech bubble

(漫画中的)对话框,话泡泡

更多范例减少例句He let the air out of the balloon.The balloon went bang when it landed on the bush.Lottie was carrying a balloon.She pricked the balloon with a pin and it burst with a loud bang.The balloon rose gently up into the air.

习语

the balloon goes up

balloonverb [ I ] uk

Your browser doesn't support HTML5 audio

/bəˈluːn/ us

Your browser doesn't support HTML5 audio

/bəˈluːn/

to get bigger and rounder

像气球般膨胀

I ballooned when I was pregnant with my second baby.

怀第二个孩子时,我胖得像个气球。

to quickly increase in size, weight, or importance

(在大小、重量或重要性上)激增

The rumours soon ballooned into a full-blown scandal.

这些传闻不久就完全演变成了一起丑闻。

(balloon在剑桥英语-中文(简体)词典的翻译 © Cambridge University Press)

balloon的例句

balloon

Clearly, a specialist diet makes ballooning altogether more risky, unless these species have a greater ability to withstand starvation than polyphagous ballooners.

来自 Cambridge English Corpus

They suggested that the use of oversized balloons offered no clear advantage and may increase the risk of complications.

来自 Cambridge English Corpus

In this paradigm, ballooning appears to be largely driven by the unpredictable and comparatively high degree of habitat perturbation, not by host associations.

来自 Cambridge English Corpus

When a serious problem arose, the number of petitions must have ballooned to a staggering degree.

来自 Cambridge English Corpus

Molecular approaches hold the possibility of investigating ballooning population genetic structuring, and evaluating how this is affected by behaviour (see later).

来自 Cambridge English Corpus

The number of capital statutes ballooned in the eighteenth century to over 200.

来自 Cambridge English Corpus

The consumption of balloons proved even more appealing, perhaps, because established scientific patrons and institutions did little to support this new invention.

来自 Cambridge English Corpus

Even so, that ballooning emerged independently in each of the three groups is unlikely to be disputed.

来自 Cambridge English Corpus

示例中的观点不代表剑桥词典编辑、剑桥大学出版社和其许可证颁发者的观点。

A2

balloon的翻译

中文(繁体)

氣球, 熱氣球, (漫畫中的)對話方塊,話泡泡…

查看更多内容

西班牙语

globo, aerostato, bocadillo…

查看更多内容

葡萄牙语

balão, inflar-se, inchar-se…

查看更多内容

更多语言

in Marathi

日语

土耳其语

法语

加泰罗尼亚语

in Dutch

in Tamil

in Hindi

in Gujarati

丹麦语

in Swedish

马来语

德语

挪威语

in Urdu

in Ukrainian

俄语

in Telugu

阿拉伯语

in Bengali

捷克语

印尼语

泰语

越南语

波兰语

韩语

意大利语

फुगा, गरम हवा किंवा हवेपेक्षा हलका वायू भरलेले रवरी फुगे. याच्या तळात टोपली बांधून त्यातून प्रवासी वाहतूक केली जाते.…

查看更多内容

ふうせん, 急激に太る, 風船(ふうせん)…

查看更多内容

balon, büyümek, genişlemek…

查看更多内容

ballon [masculine], une montgolfière, ballon…

查看更多内容

globus, inflar-se, augmentar…

查看更多内容

ballon…

查看更多内容

ஒரு சிறிய, மிக மெல்லிய ரப்பர் பையில் நீங்கள் காற்றை ஊதுகிறீர்கள் (நிரப்பப்படுகிறது) அல்லது ஒரு லேசான வாயுவை நிரப்புகிறீர்கள், அது உருண்டை வடிவம் ஆகும் வரை. நிகழ்ச்சிகளில் அலங்காரத்திற்காக பயன்படுத்தக்கூடியது அல்லது குழந்தைகள் விளையாடுவதற்கு பொம்மையாகப் பயன்படுத்தப்படுகிறது…

查看更多内容

गुब्बारा, बैलून, जिसमें गर्म हवा या गैस भरी जाती है और उसके नीचे एक टोकरी में लोग सवार होते हैं…

查看更多内容

ફુગ્ગો., બલૂન, ફુગ્ગો…

查看更多内容

ballon…

查看更多内容

ballong…

查看更多内容

belon…

查看更多内容

der Luftballon…

查看更多内容

ballong [masculine], ballong…

查看更多内容

غبارہ, غبارہ(اڑنے والا)…

查看更多内容

повітряна куля…

查看更多内容

воздушный шар, раздуваться, становиться больше…

查看更多内容

బెలూన్, వేడిగాలి లేదా గ్యాస్ తో నింపబడి, క్రిందన వేలాడదీసిన బుట్టలో జనాలను మోసుకొని పోగల చాలాపెద్ద బెలూన్…

查看更多内容

بالون, مِنْطاد, يَنفُخ…

查看更多内容

বেলুন, একটি ছোটো, খুব পাতলা রাবার ব্যাগ যেটিতে আপনি ফুঁ দিয়ে বাতাস ভরে দেবেন বা হালকা গ্যাস দিয়ে যেটি ভর্তি করবেন যতক্ষণ না এটি আকারে গোল হয়…

查看更多内容

balon(ek)…

查看更多内容

balon…

查看更多内容

ลูกโป่ง, ลูกบอลลูน…

查看更多内容

kinh khí cầu…

查看更多内容

balonik, balon, rozrastać się…

查看更多内容

풍선, 갑자기 부풀어 오르다…

查看更多内容

palloncino, gonfiarsi come un pallone, aumentare di peso…

查看更多内容

需要一个翻译器吗?

获得快速、免费的翻译!

翻译器工具

balloon的发音是什么?

在英语词典中查看 balloon 的释义

浏览

ballistic

ballistic missile

ballistics

ballon

balloon

balloonist

ballot

ballot box

ballot rigging

balloon更多的中文(简体)翻译

全部

trial balloon

barrage balloon

weather balloon

hot-air balloon

the balloon goes up idiom

sink like a lead balloon, at sink like a stone idiom

go down like a lead balloon idiom

查看全部意思»

惯用语

the balloon goes up idiom

sink like a lead balloon, at sink like a stone idiom

go down like a lead balloon idiom

查看全部惯用语意思»

“每日一词”

token

UK

Your browser doesn't support HTML5 audio

/ˈtəʊ.kən/

US

Your browser doesn't support HTML5 audio

/ˈtoʊ.kən/

something that you do, or a thing that you give someone, that expresses your feelings or intentions, although it might have little practical effect

关于这个

博客

Renowned and celebrated (Words meaning ‘famous’)

March 13, 2024

查看更多

新词

inverse vaccine

March 11, 2024

查看更多

已添加至 list

回到页面顶端

内容

英语-中文(简体)例句翻译

©剑桥大学出版社与评估2024

学习

学习

学习

新词

帮助

纸质书出版

Word of the Year 2021

Word of the Year 2022

Word of the Year 2023

开发

开发

开发

词典API

双击查看

搜索Widgets

执照数据

关于

关于

关于

无障碍阅读

剑桥英语教学

剑桥大学出版社与评估

授权管理

Cookies与隐私保护

语料库

使用条款

京ICP备14002226号-2

©剑桥大学出版社与评估2024

剑桥词典+Plus

我的主页

+Plus 帮助

退出

词典

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

翻译

语法

同义词词典

Pronunciation

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录 /

注册

中文 (简体)  

Change

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

中文 (简体)

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

关注我们

选择一本词典

最近的词和建议

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

语法与同义词词典

对自然书面和口头英语用法的解释

英语语法

同义词词典

Pronunciation

British and American pronunciations with audio

English Pronunciation

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

词典+Plus

词汇表

选择语言

中文 (简体)  

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

内容

英语-中文(简体) 

 NounVerb

例句

Translations

语法

所有翻译

我的词汇表

把balloon添加到下面的一个词汇表中,或者创建一个新词汇表。

更多词汇表

前往词汇表

对该例句有想法吗?

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

房地产贷款中的气球贷款(Balloon Payment Mortgage) - 知乎

房地产贷款中的气球贷款(Balloon Payment Mortgage) - 知乎首发于美国地产小知识切换模式写文章登录/注册房地产贷款中的气球贷款(Balloon Payment Mortgage)HoneyMooseiSharkFly - 鲨鱼君气球贷款要求贷款人在一定短期内(通常是3年、5年或7年)全部付清贷款余额。这类贷款的利率可固定或变化。大额尾付贷款的另外一种叫法又被称为“气球贷款”是一种比较特殊的贷款,它的贷款期限一般限制在短期(例如3的7年)内,但它的每期付款金额却是按照长期贷款(例如,15年到30年)来计算的。这种计算一方面会降低每期的还款金额,但另一方面会在贷款期限结束时,积累一笔很大的金额,称之为大额尾付金额。大额尾付贷款的利率一般在大额尾付贷款期间是固定的。这种贷款就和气球一样,在开始的时候比较小,但是最后却有一笔比较大的尾款。这笔尾款会要求借款人到期偿付的。气球贷款的出现在美国的房地产金融体系中,你的月供多少是通过你的收入比的体现的。通常你的月供和还款压力不应该超如你收入的 50%,不同银行的要求是不一样的。这里的还款压力包括有所有的还款,如果你有信用卡,那么按照你信用卡的最低还款额度计算。如果你有车贷,那么按照你的车贷的月供计算。当然还有地产税,地产税的偿付也是要计算到月供里面的。这样算下来的的话,如果使用长期贷款比如说 15 年,你的月供比率可能会比较高,导致银行不放款。解决办法就是提高首付减少贷款金额或者延长贷款年限。如果延长贷款年限还是没有办法解决这个贷款比例的问题的话,那么需要考虑使用不同方式了。气球贷”并不适合所有借款人,具有以下经济状况或贷款意愿的人群可以考虑选用“气球贷。考虑中短期贷款的人,贷款期限一般为 3-5 年。贷款前期每月的同定收入较低的人,借款人不能承担普通短期贷款的高月供,但是预计在贷款期末有一笔较大的资金进账,足以支付“气球贷”期末应付的较大数额的一次性清偿的剩余本金。有更好的投资渠道,且投资收益率高于银行贷款利率,一段时间后预期获得本金和收益,一次性偿还剩余的贷款本金。敢于承担风险的投资者,这样的借款人在贷款前期仅偿还较少的月供,贷款结束期末一次偿还剩余本金需注意一点,想短期贷款而且有能力承担高月供的借款人不适合选择“气球贷”,因为上面可以看出,同样贷款期限的“气球贷”与普通贷款相比所偿还的总利息要髙。针对中国的家庭来说,如果在贷款末期的最后偿付金额是可以在家庭范围内想办法解决的,但是又不愿意承担比较高的月供的话,气球贷款还是可以考虑的。算法举例假设你现在要一个 5 年的 Balloon Payment 贷款。房屋的成交价格为:438K首付为 20%:87.6K当前贷款利率为:3.0%如上面的图显示的。你的实际贷款金额为:350.4K你的月供将会为 1.478K在 5 年后,你还需要支付给银行 313.005K。这笔偿付金额还是比较高的,通常来说还是需要购房人能够比较准确的了解当前自己的经济状况。https://www.usrealestate.io/t/topic/80发布于 2021-07-17 03:40银行贷款贷款利率​赞同 2​​1 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录美国地产小知识美国地产和资本投资的

balloon是什么意思_balloon的翻译_音标_读音_用法_例句_爱词霸在线词典

oon是什么意思_balloon的翻译_音标_读音_用法_例句_爱词霸在线词典首页翻译背单词写作校对词霸下载用户反馈专栏平台登录balloon是什么意思_balloon用英语怎么说_balloon的翻译_balloon翻译成_balloon的中文意思_balloon怎么读,balloon的读音,balloon的用法,balloon的例句翻译人工翻译试试人工翻译翻译全文简明柯林斯牛津balloon高中/CET4/CET6/考研/GRE/TOEFL英 [bəˈluːn]美 [bəˈluːn]释义n.(热)气球v.膨胀,激增; 乘热气球飞行大小写变形:Balloon点击 人工翻译,了解更多 人工释义词态变化复数: balloons;第三人称单数: balloons;过去式: ballooned;过去分词: ballooned;现在分词: ballooning;实用场景例句全部气球热气球膨胀激增Her skirt ballooned out in the wind.她的裙子让风吹得鼓起来了。牛津词典to blow up/burst/pop a balloon吹起气球;使气球爆裂牛津词典The budget deficit has ballooned to $25 billion...预算赤字已经猛增到250亿美元。柯林斯高阶英语词典In London, the use of the Tube has ballooned...在伦敦,坐地铁的人激增。柯林斯高阶英语词典She popped a balloon with her fork.她用叉子戳破了一个气球。柯林斯高阶英语词典They are to attempt to be the first to circle the Earth non-stop by balloon.他们试图完成乘热气球不间断环球飞行的创举。柯林斯高阶英语词典The balloon blew out.气球爆了.期刊摘选When balloon was over the station, the pilot saw one of the men taking photographs.当气球飘到基地上空时, 这位飞行员看见其中一人在拍照.期刊摘选Conclusions: Transluminal balloon dilatation is a safe and effective method for treating postoperative strictures the ureter.结论: 腔内球囊扩张对治疗输尿管外科手术后狭窄是一种安全而有效的方法.期刊摘选Lily is chasing a balloon.莉莉在追汽球.期刊摘选The balloon cleared the tree tops.气球飞过了树梢.期刊摘选His jokes about woman drivers went down like a lead balloon.他讲了不少女人驾车的笑话,但没人笑.《简明英汉词典》Soon afterwards, the balloon began to descend and it landed near an airfield.后来不久, 那只气球开始下降了,结果它在一个机场附近着陆了.《用法词典》He pricked the toy balloon.他在玩具气球上刺洞.辞典例句Pinch a small bubble from the knot and fold the balloon.从打结处捏出一个小泡泡,然后摺叠气球.期刊摘选The balloon has blown.气球炸开了.《简明英汉词典》The balloon will pop if you put a pin in it.如果扎进一颗大头钉,气球就会突然爆开.《简明英汉词典》A balloon floated across the sky.气球飘过天空.《现代汉英综合大词典》With a supply of compressed air, the large balloon inflated in a matter of seconds.大气球注入压缩空气后, 几秒钟便膨胀了起来.《简明英汉词典》Don't blow the balloon up any further! It'll burst!别给气球多充气了! 它会破的!《简明英汉词典》Gas dilates the balloon.气体使汽球膨胀.《现代英汉综合大词典》He popped the balloon with a pin.他用针戳破了气球.《简明英汉词典》The balloon rose up slowly into the air.气球缓缓升上天空.《现代汉英综合大词典》The balloon soared up on a gust of wind.一阵狂风把气球吹向风中.《简明英汉词典》The balloon enlarged as we pumped air into it.那个气球充气后就变大了.《简明英汉词典》收起实用场景例句真题例句全部六级James hiked, fished, learnt to sail and experimented with hot air ballooning.出自-2013年12月听力原文收起真题例句英英释义Noun1. small thin inflatable rubber bag with narrow neck2. large tough non-rigid bag filled with gas or heated airVerb1. ride in a hot-air balloon;"He tried to balloon around the earth but storms forced him to land in China"2. become inflated;"The sails ballooned"收起英英释义词根词缀词根: ball=throw/dance/ball,表示"抛,舞,球"n.ball 球, 球状物ball球→n.球, 球状物ballad 歌谣,小曲ball抛,舞,球+ad表名词→伴随舞蹈的歌谣ballerina 芭蕾舞女演员ballet芭蕾舞+rina女→ballerina演芭蕾舞的女演员ballet 芭蕾舞ball抛,舞,球+et→舞蹈→芭蕾舞ballistics 弹道学ball抛,舞,球+istics=istic学科→对抛出去的[线路]研究→弹道学balloon 气球ball球+oon物→n.气球ballroom 舞厅ball抛,舞,球+room房间→n.舞厅bullet 枪弹bull=ball球+et小→小球→子弹v.ballot 投票ball抛,舞,球+ot→来自投票用的小球词组搭配when (或 before) the balloon goes up(informal)when (or before) the action or trouble starts(非正式)行动(或麻烦)开始(之前)收起词组搭配同义词adj.翻腾的,鼓胀的billowedv.增长,扩大multiplyheightenmagnifyaddamplifytoaugmentincreaseenlargev.膨胀;扩展billowspreadbloatstretchoutswellpuffdilateoutstretchdistendbellytumefyinflateexpandoutspreadn.气球,轻气球装置aerostat行业词典体育气球   医学囊,气球:一个能插入体腔或管内并用空气或气体使之膨胀的囊   加气膨胀   航空气球   无推进装置,以轻于空气的气囊提供浮力支持其重量的航空器。   金融分期付款中最后一笔大数   气球尾款   常用俚语balloon room[吸毒者用语]吸大麻的房间go over like a lead balloon惨败The joke went over like a lead balloon.这笑话说得一点也不好笑。My appeal to his better nature went over like a lead balloon.我求他发发善心,结果是白费劲。释义词态变化实用场景例句真题例句英英释义词根词缀词组搭配同义词行业词典常

气球 (豆瓣)

气球 (豆瓣)

登录/注册

下载豆瓣客户端

豆瓣 6.0 全新发布

×

豆瓣

扫码直接下载

iPhone

·

Android

豆瓣

读书

电影

音乐

同城

小组

阅读

FM

时间

豆品

豆瓣电影

搜索:

影讯&购票

选电影

电视剧

排行榜

影评

2023年度榜单

2023年度报告

气球

(2019)

导演: 万玛才旦

编剧: 万玛才旦

主演: 索朗旺姆 / 金巴 / 杨秀措

类型: 剧情

制片国家/地区: 中国大陆

语言: 藏语

上映日期: 2020-11-20(中国大陆) / 2019-08-30(威尼斯电影节)

片长: 102分钟

又名: དབུགས་ལྒང་། / Balloon / 羊飼いと風船

IMDb: tt10703752

豆瓣评分

引用

7.7

93794人评价

5星

13.1%

4星

60.6%

3星

24.6%

2星

1.5%

1星

0.2%

好于 87% 剧情片

想看

看过

评价:

 

写短评

 

写影评

分享到

  

推荐

气球的剧情简介

· · · · · ·

  《气球》故事发生在藏地,讲述灵魂与现实的紧张关系。

  主人公达杰一家因一只普通的避孕套卷入了一系列尴尬而又难以抉择的事件当中,他们原本宁静的日常生活被彻底打破,生老病死如日月流转,当灵魂遭遇现实的挑战,该如何抉择?

气球的演职员

· · · · · ·

(

全部 30

)

万玛才旦

导演

索朗旺姆

饰 卓嘎

金巴

饰 达杰

杨秀措

饰 卓玛

更旦

饰 德本加

赵晓雯

出品人

气球的视频和图片

· · · · · ·

(

预告片4 | 图片248 · 添加

)

预告片

气球的获奖情况

· · · · · ·

(

全部

)

第76届威尼斯电影节

地平线单元奖 最佳影片(提名)

万玛才旦

第23届上海国际电影节

电影频道传媒大奖 最受传媒关注导演

万玛才旦

第14届亚洲电影大奖

最佳导演(提名)

万玛才旦

喜欢这部电影的人也喜欢

· · · · · ·

塔洛

7.7

一一

9.1

8.7

路边野餐

8.0

三峡好人

8.4

撞死了一只羊

7.1

悲情城市

9.0

小武

8.6

苏州河

8.2

兰心大剧院

7.2

我要写短评

气球的短评

· · · · · ·

(

全部 34145 条

)

热门 / 

最新 / 

好友

1588

有用

看过

2020-11-02 19:34:16

女人在夫权/父权/神权下的困境,集中在了生育选择上。妹妹那条线也有意思,旧恋人教师写书,可看做对叙事权的占有,是更隐蔽的剥夺。女人退无可退,如灭灯般掐掉情思与期待。万玛的小说和电影总是充满象征。一个不成熟的想法,象征遍地的地方,总有无法被充分言说的事物。

1401

有用

科林

看过

2020-11-15 13:07:14

气球是避孕套、是海报上女人的胎腹、是无拘无束飞升天空的红色“精子”。这三重矛盾的隐喻总结了全片的主题,象征了性欲的牢笼、生育的载体、生命的起源。

女性在这过程中承担了关键又次要的作用:她们是佛教预言投胎转世的母体,受宗教之制;也是性欲涌来肌肤之亲的客体,受男性之占;更是计划生育严苛处罚的对象,受国策之惩。这种在教法与人性夹缝里生存的女人,表面主动 实则被动,导演很聪明,用了尼姑这个在“情与戒”之间...

气球是避孕套、是海报上女人的胎腹、是无拘无束飞升天空的红色“精子”。这三重矛盾的隐喻总结了全片的主题,象征了性欲的牢笼、生育的载体、生命的起源。

女性在这过程中承担了关键又次要的作用:她们是佛教预言投胎转世的母体,受宗教之制;也是性欲涌来肌肤之亲的客体,受男性之占;更是计划生育严苛处罚的对象,受国策之惩。这种在教法与人性夹缝里生存的女人,表面主动 实则被动,导演很聪明,用了尼姑这个在“情与戒”之间徘徊的角色来对照,彰显出矛与盾。

梦境里有不少镜面 水面映照的镜头、以及超现实的镜头,摄影都很棒。

(展开)

1179

有用

同志亦凡人中文站

看过

2019-11-10 16:20:57

生和死是红白两件事,从开始的白“气球”到结束的红气球,仿佛是对人生的轮回注释。万玛才旦这次高水平发挥了,梦境捉痣的那个超现实慢镜头堪称年度华语电影的高光时刻~(当然问题来了,藏语…算华语吗?)

866

有用

Jupiter

看过

2020-11-15 23:41:07

分线以及分线的人物看不出来有何意义,几个分割镜头专门去问了北电同学,说是寄生虫式构图,太刻意太突兀,大段大段的长镜头,大段大段的手持,上次这么晕还是看少年的你,文本性强,影像叙事太弱。@深圳百老汇电影中心全国路演首映 ps:《回南天》的导演高鸣,如果您看到了我这条影评,希望您以后观影的时候不要和旁边的朋友讨论,极其影响其他观众的观感,作为一个导演对待电影极其业余。

991

有用

内有恶犬

看过

2020-11-15 18:15:33

内地极少数几个知道自己要拍什么在拍什么的导演。

>

更多短评

34145条

为什么被折叠?

有一些短评被折叠了

评论被折叠,是因为发布这条评论的账号行为异常。评论仍可以被展开阅读,对发布人的账号不造成其他影响。如果认为有问题,可以联系豆瓣电影。

你关注的人还没写过短评

我要写影评

气球的影评 · · · · · ·

( 全部 579 条 )

热门

最新

好友

小石匠

2020-11-19 00:25:53

脑补完尼姑的故事线后,我才看懂《气球》

这篇影评可能有剧透

[视频] [视频] 上面两个视频是视频版,为了气球排片1%,专门视频化了,分享更便捷。 首先,梳理了几个,电影里删掉的小说内容,和在小说之外增加的电影情节,可以帮助大家理解人物背景。 小说最第一段是床戏,真床戏,阿爸没有找到2个避孕套,和“完事之后,他就骑着他那辆破...

 (展开)

677

26

132回应

收起

胤祥

2019-10-28 22:54:56

[气球]:万玛才旦的突变

这篇影评可能有剧透

首发于北京青年报10月25日星期五C6版 青影院 及公众号“北青艺评”, 地址 首映于威尼斯地平线单元的《气球》,在平遥电影节收获广泛好评,许多影评人认为这是截止目前,万玛才旦最好的一部作品。 纵观万玛才旦主要作品的电影节路线,可以发现他是典型的东亚导演登录欧洲的路径...

 (展开)

436

14

57回应

收起

欢乐分裂

2020-11-20 10:38:47

乌有之乡或应许之地

从《塔洛》开始认识万玛才旦这位独树一帜的藏地导演,对其文本的文学质感、巧妙设计的镜像结构和构图印象极为深刻;直至颇为炫技的《撞死了一只羊》,虽口碑褒贬不一,但现实与梦境互补的超现实感仍是极为迷人;另外复习了几部万玛才旦的旧片,加上近日《气球》的上映。细细回...

 (展开)

152

7

9回应

收起

第一导演

2020-11-21 15:11:18

和万玛才旦聊了会性羞耻、信仰批判和藏地新浪潮的烦恼

采访、撰文/法兰西胶片 “第一次看电影里的接吻镜头,忘了是哪部电影了,那就是一个很混沌的时期。当时还有一些关于性普及的小说、手抄本,大家都偷偷摸摸地看,像在看一个黄色录像。其实从人的原始的直观上来看,‘性’是充满想象力的。” “我看自己电影创作的时候,它几乎没...

 (展开)

79

1

2回应

收起

木卫二

2019-12-10 11:17:09

生命的共振

读万玛才旦短篇小说集《乌金的牙齿》,专门跳过《气球》一篇。不为别的,想等等电影。 这次平遥国际电影展看完片子,赶紧补上小说。成片在结构上,气球的出现,徘徊和结局,与小说的发展完全一致。电影多出来了两个男性人物。是哪两个,不妨猜猜(书很容易买到)。 万玛才旦小...

 (展开)

102

9

9回应

收起

一只麦麦

2020-11-24 11:57:09

万玛才旦:一个人和一个民族的电影

首发于“娱理”公号 《气球》上映三天,票房300多万。 它是万玛才旦导演第三部入围威尼斯电影节的长片,讲述的是一个牧区藏族家庭里,一只气球——其实是避孕套,引发的一系列窘事,揭示传统与现代冲突及女性觉醒主题。影片情节一波三折,视听语言流畅,每个画面的构图、色彩、...

 (展开)

98

4

5回应

收起

吴邪

2020-11-21 10:06:58

那个把手伸进火里取书的女人

这篇影评可能有剧透

读过《乌金的牙齿》,基本不记得有妹妹这个人物。但看完《气球》,片中出家为尼的妹妹于我个人而言是印象极为深刻的人物,可能是因为她更未知更独立,怀揣着隐秘而强大的情感。 虽然她一出场就很不具体,镜头跟着她的脸晃动,大半张脸都被压低的深红僧帽遮挡,基本只能隐约看到...

 (展开)

36

1

3回应

收起

nothing纳森

2020-11-20 15:01:14

飘荡的气球

气球是经常被导演符号化的一种表达,时而演绎自由,时而诠释欢乐,而电影《气球》也在经历了各种电影节与话题关注后,如期而至。影片依旧带有万玛才旦独特的导演色彩,在藏区的语言环境之中,关注最普通的人的故事,将那些个不为人知的普通人的故事,一点点地用自己的视角记录...

 (展开)

65

2

9回应

收起

TravisTravis

2020-11-09 23:35:30

内地院线的奢侈|气球的背后:人性与慈悲,大于古老的歌谣

在中国电影资料馆观影点映,映后与万玛、陈丹青、谢飞老师做交流与讨论,有所收获。 陈丹青说:“我也喜欢万玛的其他作品啊,包括弄死那只羊。”老师也真是可爱。 说回电影。电影从家庭、宗教、自由、生活几个维度讨论藏地人民的生活,设计可谓是精良的。例如,一白球一红气球...

 (展开)

28

1

6回应

收起

把噗

2020-11-20 21:26:03

《气球》真的在探讨信仰吗?

这篇影评可能有剧透

达杰一家真的相信藏传佛教吗?还是说相信的仅仅是上师的权威——妻子怀孕是死去的爷爷转世投胎。 达杰之所以一定要让妻子把孩子生下来,而不顾降生的孩子对家庭带来的负担,原因仅仅出于违背佛主意愿可能带来的灾祸。 如此看来,这种信仰便不是纯粹的信仰,而是带有功利心的迷信...

 (展开)

26

5

5回应

收起

>

更多影评

579篇

添加新讨论

讨论区

  ·  ·  ·  ·  ·  ·

江洋不是男女主的亲儿子吧

来自Matheus Song

1 回应

2024-02-17 00:14:44

西藏

来自橘子气泡

1 回应

2024-01-26 20:06:10

请问下看过的朋友们,原版2D是国语版还是藏语版?

来自豆友FuJ1W@rA

5 回应

2024-01-23 15:52:17

片尾女性神像的背景和寓意

来自bay135

6 回应

2024-01-23 15:51:53

故事是发生在青海吗

来自WJSCZYNGWJZL

8 回应

2024-01-23 15:51:29

> 去这部影片的讨论区(全部263条)

在哪儿看这部电影

 · · · · · ·

爱奇艺视频

以下片单推荐

· · · · · ·

(

全部

)

豆瓣电影【口碑榜】2023-09-11 更新

(影志)

在这里,看懂中国

(时间之葬)

木卫二的大银幕 | 观影选择

(木卫二)

2020第二十三届上海国际电影节影片大全

(妖灵妖)

上海艺术电影联盟展映片目

(妖灵妖)

谁在看这部电影

· · · · · ·

谟了所有人

1小时前

想看

Vincent

2小时前

想看

豆友pDa-R8Qm4M

今天凌晨

想看

131715人看过

 / 

128012人想看

订阅气球的评论:

feed: rss 2.0

© 2005-2024 douban.com, all rights reserved 北京豆网科技有限公司

关于豆瓣

· 在豆瓣工作

· 联系我们

· 法律声明

· 帮助中心

· 移动应用

· 豆瓣广告

使用MMDetection3.x 在Balloon气球数据集上训练并对视频进行实例分割和制作成Color Splash效果 - 知乎

使用MMDetection3.x 在Balloon气球数据集上训练并对视频进行实例分割和制作成Color Splash效果 - 知乎首发于CV with OpenMMLab切换模式写文章登录/注册使用MMDetection3.x 在Balloon气球数据集上训练并对视频进行实例分割和制作成Color Splash效果chg0901风景摄影爱好者0. 关键词:MMDetection3.x,Balloon,物体检测,实例分割,Color Splash,openmmlab,mmdet, CoCo, mask rcnn, config, train, inference, 视频读写,可视化,mmlab21. 结果在前生成的模型在测试集上的测试与ground truth比较最终Color Splash效果GIF文章很长,处理后的视频在后面,记得看呀 ^_^视频其实是个超链接(14.4M),急得话那就点一下吧2 导语之前用做了MMDET2.x的balloon数据集作业,这里我们用MMDET3.x with MMLAB2新API重新做一下,感兴趣的小伙伴可以去Github上看下二者具体的代码,链接放在下面了,欢迎star.事实上,MMDetection2.x到MMDetection3.x不同版本的过渡还是挺轻松的,只改动了少量的API,主要是一些方法从mmcv转移到mmengine,然后MMDET3.x采用了更好的Visualizer,和MMCLS类似,这让可视化更加方便和直觉。1. AnchorGeneratorfrom mmdet.core.anchor import AnchorGenerator

# from mmdet.models.task_modules import AnchorGenerator # for mmlabv2.2. mmcv --> mmenginemmcv.list_from_file/dump -->mmengine.list_from_file/dump3. 实验环境创建和检查# # python,envs, pytorch, torchvision

conda create --name openmmlab python=3.8 -y

conda activate openmmlab

conda install pytorch torchvision -c pytorch

# # mim, mmengine, mmcv

pip install -U openmim

mim install mmengine

mim install "mmcv>=2.0.0rc1"

# # option 1

mim install "mmdet>=3.0.0rc0"

# # option 2

# git clone https://github.com/open-mmlab/mmdetection.git -b 3.x

# # "-b 3.x" means checkout to the `3.x` branch.

# cd mmdetection

# pip install -v -e .

# # "-v" means verbose, or more output

# # "-e" means installing a project in editable mode,

# # thus any local modifications made to the code will take effect without reinstallation.

import torch

import mmcv

import mmdet

print(torch.__version__,mmcv.__version__,mmdet.__version__)

# 1.6.0 2.0.0rc3 3.0.0rc54. 实例分割数据集BalloonBalloon是带有mask的气球数据集可以用于实例分割等计算机视觉任务,其中训练集包含61张图片,验证集包含13张图片。 下载链接:Mask_RCNN balloon_dataset.zip matterport训练集和测试集中分别有mask标注文件via_region_data.json# 查看数据集文件夹树状结构

!tree balloon/

balloon/

├── train

│ ├── 10464445726_6f1e3bbe6a_k.jpg

│ ├── 12037308314_e16fb3a0f7_k.jpg

│ ├── 120853323_d4788431b9_b.jpg

.........................

│ ├── 8758393087_76fcd56bd3_k.jpg

│ ├── 9210739293_2b0e0d991e_k.jpg

│ ├── 9330497995_4cf0438cb6_k.jpg

│ ├── train.json

│ └── via_region_data.json

└── val

├── 14898532020_ba6199dd22_k.jpg

├── 16335852991_f55de7958d_k.jpg

├── 24631331976_defa3bb61f_k.jpg

.........................

├── 5603212091_2dfe16ea72_b.jpg

├── 6810773040_3d81036d05_k.jpg

├── 8053085540_a72bd21a64_k.jpg

├── val.json

└── via_region_data.json

2 directories, 78 filesvia_region_data.json中标注格式如下:{'base64_img_data': '',

'file_attributes': {},

'filename': '34020010494_e5cb88e1c4_k.jpg',

'fileref': '',

'regions': {'0': {'region_attributes': {},

'shape_attributes': {'all_points_x': [1020,

1000,

994,

1003,

...

1104,

1061,

1032,

1020],

'all_points_y': [963,

899,

841,

787,

...

1084,

1037,

989,

963],

'name': 'polygon'}}},

'size': 1115004}标注文件时是 JSON 格式的,其中所有键(key)组成了一张图片的所有标注。5. 新数据集的支持由于需要支持新的数据集,请同学们选择MMDetection支持的以下方法来操作:将数据集整理为COCO格式将数据集整理为中间格式直接实现新数据集的支持 注:方法2,3不直接支持分割任务,需要后处理。这里推荐使用方法1。在本文档中,我们展示一个例子来说明如何将数据转化为 COCO 格式。 COCO格式应该是最常用的,因此我将官方文档放在本文供自己和读者查看。☆COCO标注格式用于实例分割的 COCO 数据集格式如下所示,其中的键(key)都是必要的,参考Common Objects in Context来获取更多细节。{

"images": [image],

"annotations": [annotation],

"categories": [category]

}

image = {

"id": int,

"width": int,

"height": int,

"file_name": str,

}

annotation = {

"id": int,

"image_id": int,

"category_id": int,

"segmentation": RLE or [polygon],

"area": float,

"bbox": [x,y,width,height], # (x, y) 为 bbox 左上角的坐标

"iscrowd": 0 or 1,

}

categories = [{

"id": int,

"name": str,

"supercategory": str,

}] Balloon dataset json转 COCO 格式下载了数据集之后,我们需要实现一个函数将标注格式转化为 COCO 格式。然后我们就可以使用已经实现的 CocoDataset 类来加载数据并进行训练以及评测。其中将 balloon dataset 转化为 COCO 格式的完整代码如下所示 。import os.path as osp

import mmcv

from mmengine.fileio import dump, load

from mmengine.utils import track_iter_progress

def convert_balloon_to_coco(ann_file, out_file, image_prefix):

data_infos = load(ann_file)

annotations = []

images = []

obj_count = 0

for idx, v in enumerate(track_iter_progress(data_infos.values())):

filename = v['filename']

img_path = osp.join(image_prefix, filename)

height, width = mmcv.imread(img_path).shape[:2]

images.append(

dict(id=idx, file_name=filename, height=height, width=width))

for _, obj in v['regions'].items():

assert not obj['region_attributes']

obj = obj['shape_attributes']

px = obj['all_points_x']

py = obj['all_points_y']

poly = [(x + 0.5, y + 0.5) for x, y in zip(px, py)]

poly = [p for x in poly for p in x]

x_min, y_min, x_max, y_max = (min(px), min(py), max(px), max(py))

data_anno = dict(

image_id=idx,

id=obj_count,

category_id=0,

bbox=[x_min, y_min, x_max - x_min, y_max - y_min],

area=(x_max - x_min) * (y_max - y_min),

segmentation=[poly],

iscrowd=0)

annotations.append(data_anno)

obj_count += 1

coco_format_json = dict(

images=images,

annotations=annotations,

categories=[{

'id': 0,

'name': 'balloon'

}])

dump(coco_format_json, out_file)

if __name__ == '__main__':

convert_balloon_to_coco(ann_file='data/balloon/train/via_region_data.json',

out_file='data/balloon/train/annotation_coco.json',

image_prefix='data/balloon/train')

convert_balloon_to_coco(ann_file='data/balloon/val/via_region_data.json',

out_file='data/balloon/val/annotation_coco.json',

image_prefix='data/balloon/val')使用如上的函数,用户可以成功将标注文件转化为 JSON 格式,之后可以使用 CocoDataset对模型进行训练,并用CocoMetric评测。# generate coco format json

!python balloon2CoCoFormat3.py

# [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 61/61, 46.9 task/s, elapsed: 1s, ETA: 0s

# [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 13/13, 50.7 task/s, elapsed: 0s, ETA: 0s6. 构建配置文件下载原始配置文件从 Model Zoo 中找到 mask rcnn 模型并找到 configs/mask_rcnn/ 中对应的模型配置文件。将模型下载到环境中,通常放在放置在 checkpoints 文件夹中。可以参考:https://github.com/open-mmlab/mmdetection/tree/master/configs/mask_rcnn# download the pretrained model with smallest size

!mim download mmdet --config mask-rcnn_r50_fpn_2x_coco --dest .构建配置文件可以使用继承机制,从选择模型配置中继承,并修改自定义数据集需要的内容。训练前测试模型下载完模型和权重之后,我们可以尝试用预训练的权重和配置文件在数据集上运行一下# Test model before retraining

from mmdet.apis import init_detector,inference_detector # ,show_result_pyplot

from mmdet.utils import register_all_modules

config_file = 'mask-rcnn_r50_fpn_2x_coco.py'

checkpoint_file = 'mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.392__segm_mAP-0.354_20200505_003907-3e542a40.pth'

register_all_modules()

model0 = init_detector(config_file,checkpoint_file,device='cpu')

from mmdet.registry import VISUALIZERS

# init the visualizer(execute this block only once)

visualizer = VISUALIZERS.build(model0.cfg.visualizer)

# the dataset_meta is loaded from the checkpoint and

# then pass to the model in init_detector

visualizer.dataset_meta = model0.dataset_meta

image_path = './data/balloon/val/410488422_5f8991f26e_b.jpg'

img = mmcv.imread( image_path, channel_order='rgb')

result = inference_detector(model0,img)

# show the results

visualizer.add_datasample(

'result',

img,

data_sample=result,

draw_gt=False,

wait_time=0,

)

visualizer.show()原图对比这里放一下原图我们比较一下,可以看出,预训练模型的效果还是不太好的其实修改好config文件后,我们也是可以使用预训练模型进行批量测试,看看预训练模型再我们修改的config配置下单效果如何这个代码主要用于MMDET2.x,因为该版本默认是不带ground的结果的,我们也可以自行配置。MMDET3.x版本中,使用python tools/dataset_converters/images2coco.py可以进行产生不带ground truth的预测图片这一步是需要修改config配置文件的,建议大家读完整篇再回来尝试,也可以作为训练前的debug# generate test results for test images

!python tools/test.py \

mask_rcnn_r50_fpn_2x_coco.py \

mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.392__segm_mAP-0.354_20200505_003907-3e542a40.pth \

--show-dir show批量可视化代码模板:可配置批量显示测试图片并保存成新图我还写了一个批量可视化所有测试结果的代码,大家可以借鉴一下。这里用的图片mmdet2.x训练成功后的预测图片,不带ground truth# generate visualization with test results for test images

import matplotlib.pyplot as plt

import os

import cv2

path_name = r'work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3/show'

num = 1

wid, hig = 20, 16

num_w, num_h = 3, 5

dpi = 300

# plt.rcParams['figure.dpi'] = dpi

plt.figure(figsize=(wid, hig),dpi=dpi)

for item in os.listdir(path=path_name):

img = cv2.imread(os.path.join(path_name,item))[:,:, ::-1]

# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

plt.subplot(num_w, num_h, num)

num+=1

plt.imshow(img)

plt.title(item)

plt.xticks([])

plt.yticks([])

# break

# plt.savefig(f"work_dirs/mask-rcnn_r50_fpn_2x_coco_balloon3_new/result{num_w}x{num_h}_{wid}_{hig}dpi{dpi}.png")

plt.show()这里放一个我们训练好的图片意思下☆修改配置文件(含新数据集的注册)第二步需要准备一个配置文件来成功加载数据集。 假设我们想要用 balloon dataset 来训练配备了 FPN 的 Mask R-CNN ,如下是我们的配置文件。配置文件命名为 mask-rcnn_r50-caffe_fpn_ms-poly-1x_balloon.py,相应保存路径为 configs/balloon/,配置文件内容如下所示。官方方法,简洁配置balloon数据集这个配置还是需要改动的不能直接用,只是为了展示与和下面完整config比较以显示区别# 新配置继承了基本配置,并做了必要的修改

_base_ = '../mask_rcnn/mask-rcnn_r50-caffe_fpn_ms-poly-1x_coco.py'

# 我们还需要更改 head 中的 num_classes 以匹配数据集中的类别数

model = dict(

roi_head=dict(

bbox_head=dict(num_classes=1), mask_head=dict(num_classes=1)))

# 修改数据集相关配置

data_root = 'data/balloon/'

metainfo = {

'classes': ('balloon', ),

'palette': [

(220, 20, 60),

]

}

train_dataloader = dict(

batch_size=1,

dataset=dict(

data_root=data_root,

metainfo=metainfo,

ann_file='train/annotation_coco.json',

data_prefix=dict(img='train/')))

val_dataloader = dict(

dataset=dict(

data_root=data_root,

metainfo=metainfo,

ann_file='val/annotation_coco.json',

data_prefix=dict(img='val/')))

test_dataloader = val_dataloader

# 修改评价指标相关配置

val_evaluator = dict(ann_file=data_root + 'val/annotation_coco.json')

test_evaluator = val_evaluator

# 使用预训练的 Mask R-CNN 模型权重来做初始化,可以提高模型性能

load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth'完整mask-rcnn_r50_fpn_2x_coco配置文件下面会介绍如何将MMDET3.x mask-rcnn_r50_fpn_2x_coco配置文件修改为和balloon数据集对应的配置,需要注意的地方后面会专门提到,请注意查看 详细介绍,请查看官方文档, 以后详细逐行解读下【ToDo list +1】# model settings

model = dict(

type='MaskRCNN',

data_preprocessor=dict(

type='DetDataPreprocessor',

mean=[123.675, 116.28, 103.53],

std=[58.395, 57.12, 57.375],

bgr_to_rgb=True,

pad_mask=True,

pad_size_divisor=32),

backbone=dict(

type='ResNet',

depth=50,

num_stages=4,

out_indices=(0, 1, 2, 3),

frozen_stages=1,

norm_cfg=dict(type='BN', requires_grad=True),

norm_eval=True,

style='pytorch',

init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50')),

neck=dict(

type='FPN',

in_channels=[256, 512, 1024, 2048],

out_channels=256,

num_outs=5),

rpn_head=dict(

type='RPNHead',

in_channels=256,

feat_channels=256,

anchor_generator=dict(

type='AnchorGenerator',

scales=[8],

ratios=[0.5, 1.0, 2.0],

strides=[4, 8, 16, 32, 64]),

bbox_coder=dict(

type='DeltaXYWHBBoxCoder',

target_means=[.0, .0, .0, .0],

target_stds=[1.0, 1.0, 1.0, 1.0]),

loss_cls=dict(

type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),

loss_bbox=dict(type='L1Loss', loss_weight=1.0)),

roi_head=dict(

type='StandardRoIHead',

bbox_roi_extractor=dict(

type='SingleRoIExtractor',

roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0),

out_channels=256,

featmap_strides=[4, 8, 16, 32]),

bbox_head=dict(

type='Shared2FCBBoxHead',

in_channels=256,

fc_out_channels=1024,

roi_feat_size=7,

num_classes=1, # 只有一个balloon类,修改为num_classes=1

bbox_coder=dict(

type='DeltaXYWHBBoxCoder',

target_means=[0., 0., 0., 0.],

target_stds=[0.1, 0.1, 0.2, 0.2]),

reg_class_agnostic=False,

loss_cls=dict(

type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),

loss_bbox=dict(type='L1Loss', loss_weight=1.0)),

mask_roi_extractor=dict(

type='SingleRoIExtractor',

roi_layer=dict(type='RoIAlign', output_size=14, sampling_ratio=0),

out_channels=256,

featmap_strides=[4, 8, 16, 32]),

mask_head=dict(

type='FCNMaskHead',

num_convs=4,

in_channels=256,

conv_out_channels=256,

num_classes=1, # 只有一个balloon类,修改为num_classes=1

loss_mask=dict(

type='CrossEntropyLoss', use_mask=True, loss_weight=1.0))),

# model training and testing settings

train_cfg=dict(

rpn=dict(

assigner=dict(

type='MaxIoUAssigner',

pos_iou_thr=0.7,

neg_iou_thr=0.3,

min_pos_iou=0.3,

match_low_quality=True,

ignore_iof_thr=-1),

sampler=dict(

type='RandomSampler',

num=256,

pos_fraction=0.5,

neg_pos_ub=-1,

add_gt_as_proposals=False),

allowed_border=-1,

pos_weight=-1,

debug=False),

rpn_proposal=dict(

nms_pre=2000,

max_per_img=1000,

nms=dict(type='nms', iou_threshold=0.7),

min_bbox_size=0),

rcnn=dict(

assigner=dict(

type='MaxIoUAssigner',

pos_iou_thr=0.5,

neg_iou_thr=0.5,

min_pos_iou=0.5,

match_low_quality=True,

ignore_iof_thr=-1),

sampler=dict(

type='RandomSampler',

num=512,

pos_fraction=0.25,

neg_pos_ub=-1,

add_gt_as_proposals=True),

mask_size=28,

pos_weight=-1,

debug=False)),

test_cfg=dict(

rpn=dict(

nms_pre=1000,

max_per_img=1000,

nms=dict(type='nms', iou_threshold=0.7),

min_bbox_size=0),

rcnn=dict(

score_thr=0.05,

nms=dict(type='nms', iou_threshold=0.5),

max_per_img=100,

mask_thr_binary=0.5)))

# custom_imports = dict(imports=['mmdet.datasets.balloon'], allow_failed_imports=False)

# dataset settings

dataset_type = 'CocoDataset'

classes = ('balloon')

data_root = 'data/balloon/'

# file_client_args = dict(

# backend='petrel',

# path_mapping=dict({

# './data/': 's3://openmmlab/datasets/detection/',

# 'data/': 's3://openmmlab/datasets/detection/'

# }))

file_client_args = dict(backend='disk')

train_pipeline = [

dict(type='LoadImageFromFile', file_client_args=file_client_args),

dict(type='LoadAnnotations', with_bbox=True, with_mask=True),

dict(type='Resize', scale=(1333, 800), keep_ratio=True),

dict(type='RandomFlip', prob=0.5),

dict(type='PackDetInputs')

]

test_pipeline = [

dict(type='LoadImageFromFile', file_client_args=file_client_args),

dict(type='Resize', scale=(1333, 800), keep_ratio=True),

# If you don't have a gt annotation, delete the pipeline

dict(type='LoadAnnotations', with_bbox=True, with_mask=True),

dict(

type='PackDetInputs',

meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',

'scale_factor'))

]

train_dataloader = dict(

batch_size=2,

num_workers=2,

persistent_workers=True,

sampler=dict(type='DefaultSampler', shuffle=True),

batch_sampler=dict(type='AspectRatioBatchSampler'),

dataset=dict(

type=dataset_type,

metainfo = dict(classes=classes),

data_root=data_root,

ann_file='train/train.json',

data_prefix=dict(img='train/'),

filter_cfg=dict(filter_empty_gt=True, min_size=32),

pipeline=train_pipeline))

val_dataloader = dict(

batch_size=1,

num_workers=2,

persistent_workers=True,

drop_last=False,

sampler=dict(type='DefaultSampler', shuffle=False),

dataset=dict(

type=dataset_type,

metainfo = dict(classes=classes),

data_root=data_root,

ann_file='val/val.json',

data_prefix=dict(img='val/'),

test_mode=True,

pipeline=test_pipeline))

test_dataloader = val_dataloader

val_evaluator = dict(

type='CocoMetric',

ann_file='data/balloon/val/val.json',

metric=['bbox', 'segm'],

format_only=False)

test_evaluator = val_evaluator

# inference on test dataset and

# format the output results for submission.

# test_dataloader = dict(

# batch_size=1,

# num_workers=2,

# persistent_workers=True,

# drop_last=False,

# sampler=dict(type='DefaultSampler', shuffle=False),

# dataset=dict(

# type=dataset_type,

# data_root=data_root,

# ann_file=data_root + 'annotations/image_info_test-dev2017.json',

# data_prefix=dict(img='test2017/'),

# test_mode=True,

# pipeline=test_pipeline))

# test_evaluator = dict(

# type='CocoMetric',

# metric=['bbox', 'segm'],

# format_only=True,

# ann_file=data_root + 'annotations/image_info_test-dev2017.json',

# outfile_prefix='./work_dirs/coco_instance/test')

# training schedule for 2x

train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=24, val_interval=3)

val_cfg = dict(type='ValLoop')

test_cfg = dict(type='TestLoop')

# learning rate

param_scheduler = [

dict(

type='LinearLR', start_factor=0.001, by_epoch=False, begin=0, end=500),

dict(

type='MultiStepLR',

begin=0,

end=24,

by_epoch=True,

milestones=[16, 22],

gamma=0.1)

]

# optimizer

optim_wrapper = dict(

type='OptimWrapper',

optimizer=dict(type='SGD', lr=0.002, momentum=0.9, weight_decay=0.0001))

# Default setting for scaling LR automatically

# - `enable` means enable scaling LR automatically

# or not by default.

# - `base_batch_size` = (8 GPUs) x (2 samples per GPU).

auto_scale_lr = dict(enable=False, base_batch_size=2)

default_scope = 'mmdet'

default_hooks = dict(

timer=dict(type='IterTimerHook'),

logger=dict(type='LoggerHook', interval=3),

param_scheduler=dict(type='ParamSchedulerHook'),

checkpoint=dict(type='CheckpointHook', interval=3),

sampler_seed=dict(type='DistSamplerSeedHook'),

visualization=dict(type='DetVisualizationHook'))

env_cfg = dict(

cudnn_benchmark=False,

mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),

dist_cfg=dict(backend='nccl'),

)

vis_backends = [dict(type='LocalVisBackend')]

visualizer = dict(

type='DetLocalVisualizer', vis_backends=vis_backends, name='visualizer')

log_processor = dict(type='LogProcessor', window_size=50, by_epoch=True)

log_level = 'INFO'

load_from = 'mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.392__segm_mAP-0.354_20200505_003907-3e542a40.pth'

resume = FalseConfig修改重点主要修改点0: _base_模型的路径和模型选择,这里我们应用到选择的mask rcnn模型上,并修改引用路径,关于_base_问题,之前的笔记教程已经多次提到,这里不再重复,可以再回去看一下。# _base_ = '../mask_rcnn/mask-rcnn_r50_fpn_2x_coco.py'

_base_ = 'configs/mask_rcnn/mask-rcnn_r50_fpn_2x_coco.py主要修改点1:修改model.[backbone, bbox_head, mask_head]model.backbone.init_cfg=None, model.[bbox_head,mask_head].num_classes=1 model的bbox_head和mask_head的num_classes,只有一个balloon类,因此修改为num_classes=1 主要修改点2:数据集注册 with train_dataloader.dataset.metainfo 数据集注册,也是一个很重要的点,在下面☆7. 数据集的注册还会对其他注册方法介绍,这里我们只介绍最简单的一种# 修改数据集相关配置

metainfo = {

'classes': ('balloon', ),

'palette': [

(220, 20, 60),

]

}

train_dataloader = dict(dataset=dict(metainfo=metainfo,)主要修改点3:在dataset/dataloader中的数据路径配置dataroot是可以和ann_file,data_prefix相连的,在项目中,json文件的目录为:'data/balloon/train/train.json'data_root = 'data/balloon/'

train_dataloader = dict(

dataset=dict(

data_root=data_root,

ann_file='train/train.json',

data_prefix=dict(img='train/')))

val_evaluator = dict(

type='CocoMetric',

ann_file='data/balloon/val/val.json',

metric=['bbox', 'segm'],

format_only=False)

test_evaluator = val_evaluator主要修改点4:evaluator中的type要和dataset_type对应,ann_file写完整的路径,metric要写['bbox', 'segm'], 当我们的数据没有标注只有类别class时,metric可以用mAP # training schedule for 2x

train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=24, val_interval=3)

# Default setting for scaling LR automatically

# - `enable` means enable scaling LR automatically

# or not by default.

# - `base_batch_size` = (8 GPUs) x (2 samples per GPU).

auto_scale_lr = dict(enable=False, base_batch_size=2)

# learning rate

param_scheduler = [dict(type='LinearLR'),dict(type='MultiStepLR')]

# optimizer

optim_wrapper = dict(optimizer=dict(type='SGD', lr=0.002, momentum=0.9, weight_decay=0.0001))

default_hooks = dict(

logger=dict(type='LoggerHook', interval=3),,

checkpoint=dict(type='CheckpointHook', interval=3)

log_level = 'INFO'

load_from = 'mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.392__segm_mAP-0.354_20200505_003907-3e542a40.pth'主要修改点5:2x: For1x/2x, the initial learning rate decays by a factor of 10 at the 8/16th and 11/22th epochs.主要修改点6:几个interval,如train_cfg.val_interval, default_hooks.logger.interval, default_hooks.CheckpointHook.interval 主要修改点7:optimizer :optim_wrapper = dict(optimizer=dict(type='SGD', lr=0.002, momentum=0.9, weight_decay=0.0001)) 主要修改点8:load_from='path_of_pretrained_weight' param_scheduleris a field that configures methods of adjusting optimization hyperparameters such as learning rate and momentum. Users can combine multiple schedulers to create a desired parameter adjustment strategy. Find more in parameter scheduler tutorial and parameter scheduler API documentstype='LinearLR', # Use linear policy to warmup learning ratetype='MultiStepLR', # Use multi-step learning rate policy during trainingbgr_to_rgb=True,mmcv读取数据为bgr顺序,和OpenCV类似model = dict(roi_head=dict(bbox_head=dict(num_classes=1),mask_head=dict(num_classes=1)))Balloon数据集Config文件【简洁修改最终版】这里再放一下根据balloon数据集自己修改的精简板本的config文件# 新配置继承了基本配置,并做了必要的修改

# _base_ = '../mask_rcnn/mask-rcnn_r50_fpn_2x_coco.py'

_base_ = 'configs/mask_rcnn/mask-rcnn_r50_fpn_2x_coco.py'

# 我们还需要更改 head 中的 num_classes 以匹配数据集中的类别数

model = dict(

roi_head=dict(

bbox_head=dict(num_classes=1),

mask_head=dict(num_classes=1)),

backbone=dict(init_cfg=None),

)

# 修改数据集相关配置

data_root = 'data/balloon/'

metainfo = {

'classes': ('balloon', ),

'palette': [

(220, 20, 60),

]

}

train_dataloader = dict(

batch_size=1,

dataset=dict(

data_root=data_root,

metainfo=metainfo,

ann_file='train/train.json',

data_prefix=dict(img='train/')))

val_dataloader = dict(

dataset=dict(

data_root=data_root,

metainfo=metainfo,

ann_file='val/val.json',

data_prefix=dict(img='val/')))

test_dataloader = val_dataloader

optim_wrapper = dict(

type='OptimWrapper',

optimizer=dict(type='SGD', lr=0.002, momentum=0.9, weight_decay=0.0001))

# 修改评价指标相关配置

val_evaluator = dict(ann_file=data_root + 'val/val.json')

test_evaluator = val_evaluator

# 使用预训练的 Mask R-CNN 模型权重来做初始化,可以提高模型性能

load_from = 'mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.392__segm_mAP-0.354_20200505_003907-3e542a40.pth'☆7. 数据集的注册这一点,其实官方文档有时候也说的不是很清楚,在训练营的时候,自己改了两三次,才有一定的了解。MMDET2.x中,有CustomDataset的方法,因此,读者可以很好的利用这个方法来使用自己的数据集,而MMDET3.x摒弃了这种做法,而要求严格的同样数据格式,这也要求,我们掌握这一方式方法。COCO 更换metainfo 官方文档的注册方法, train_dataloader.dataset.metainfo.[classes,palette] 评价: 简单,修改较少由于我们已经将数据集转换成了COCO格式,所以注册新数据集的操作会简单一些,需要我们调整配置文件中的metainfo字典。metainfo包含了classes和palette属性,classes是数据集中标注的所有要检测的物体的种类,而palette则是标注mask文件中代表所有标注物体的mask的对应的颜色值。在这里,我们只检测气球balloon,如果有更多类需要检测的话,就要求我们添加对应的类别。palette对能否找到检测的物体非常重要,一定要找对,必要时,还要通过查看数据,找到准确的值。# dataset settings 修改数据集相关配置

data_root = 'data/balloon/'

metainfo = {

'classes': ('balloon', ),

'palette': [(220, 20, 60),]

}

train_dataloader = dict(

dataset=dict(

data_root=data_root,

metainfo=metainfo,

ann_file='train/annotation_coco.json',

data_prefix=dict(img='train/')))

val_dataloader = dict(

dataset=dict(

data_root=data_root,

metainfo=metainfo,

ann_file='val/annotation_coco.json',

data_prefix=dict(img='val/')))

test_dataloader = val_dataloaderConfig +Notebook (+train+test)在jupyter notebook中注册,搭配mmengine.Config API一起使用we need to implement load_annotations function in the new dataset class StanfordBackgroundDataset.from mmseg.registry import DATASETS

from mmseg.datasets import BaseSegDataset

# 类别和对应的颜色

classes = ('background', 'glomeruili')

palette = [[128, 128, 128], [151, 189, 8]]

@DATASETS.register_module()

class StanfordBackgroundDataset(BaseSegDataset):

METAINFO = dict(classes = classes, palette = palette)

def __init__(self, **kwargs):

super().__init__(img_suffix='.png', seg_map_suffix='.png', **kwargs)在Notebook中对Config配置文件针对性修改 (+Train+Inference)from mmengine import Config

from mmengine.runner import Runner

from mmseg.utils import register_all_modules

cfg = Config.fromfile('configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py')

# 修改数据集的 type 和 root

cfg.dataset_type = 'StanfordBackgroundDataset'

cfg.data_root = data_root

cfg.val_dataloader.dataset.type = cfg.dataset_type

cfg.val_dataloader.dataset.type = cfg.dataset_type保存配置文件和训练print(cfg.pretty_text) # 这里就不显示打印结果了

cfg.dump('new_cfg_Glomeruli3.py')

# register all modules in mmseg into the registries

# do not init the default scope here because it will be init in the runner

register_all_modules(init_default_scope=False)

runner = Runner.from_cfg(cfg)

runner.train()测试与推断# 测试时,初始化模型

checkpoint_path = './work_dirs/glomeruili2/iter_800.pth'

model = init_model(cfg, checkpoint_path, 'cuda:0')

# 单张图像

img = mmcv.imread('data/Glomeruli-dataset/images/SAS_21908_001_42.png')

result = inference_model(model, img)更多的config配置写法,可以参考本文完整mask-rcnn_r50_fpn_2x_coco配置文件部分和以前的知乎文章MMSegmentation基础实验with Kaggle小鼠肾小球切片语义分割的在Notebook中对Config配置文件针对性修改 部分进行修改。这种写法很灵活,参数可以使用cfg加属性不断访问Config配置文件字典,所添加属性值的数据类型,可以是字典,链表等继承Base*Dataset的数据类+修改__init__.py 创建自定义继承Base*Dataset数据集的python文件,并修改__init__.py, 在dataset中注册,这里以本次训练营中的mmseg的代码举例说明,MMDET2.x也支持自定义数据集类的方法注册mmseg/dataset/StanfordBackgroundDataset.pyfrom mmseg.registry import DATASETS

from .basesegdataset import BaseSegDataset

# 类别和对应的颜色

classes = ('background', 'glomeruili')

palette = [[128, 128, 128], [151, 189, 8]]

@DATASETS.register_module()

class StanfordBackgroundDataset(BaseSegDataset):

METAINFO = dict(classes = classes, palette = palette)

def __init__(self, **kwargs):

super().__init__(img_suffix='.png', seg_map_suffix='.png', **kwargs)mmseg/dataset/__init__.py# Copyright (c) OpenMMLab. All rights reserved.

from .basesegdataset import BaseSegDataset

from .StanfordBackgroundDataset import StanfordBackgroundDataset

from .m2nist import M2nistDataset

__all__ = [

'BaseSegDataset', 'StanfordBackgroundDataset','M2nistDataset'

]需要注意的是,from import的时候不要遗漏那个点 . from .StanfordBackgroundDataset import StanfordBackgroundDataset

from .m2nist import M2nistDataset下载他人定义的数据集类型需要注意的是,存取的路径和文件名要对应在MMSegmentation库文件夹中,这种做法其实是上面方法的推广mmseg/dataset/StanfordBackgroundDataset.pymmseg/dataset/__init__.py## 添加数据集类

# 数据集配置文件

!wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20230130-mmseg/dataset/StanfordBackgroundDataset.py \

-O ../mmsegmentation/mmseg/datasets/StanfordBackgroundDataset.py

# 修改 ../mmsegmentation/mmseg/datasets/__init__.py,添加数据集

!wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20230130-mmseg/dataset/__init__.py \

-O ../mmsegmentation/mmseg/datasets/__init__.pyMMDET2.x对于数据集的简单注册这里贴一下MMDET2.x对于数据集的注册,只有classes需要注意classes=('balloon',) MMDET2.x也支持自定义数据集类的方法注册,参考上面COCO 更换metainfo和继承Base*Dataset的数据类+修改__init__.py部分, model = dict(roi_head=dict(bbox_head=dict(num_classes=1),

mask_head=dict(num_classes=1)))

data = dict(

train=dict(

ann_file='data/balloon/train/train.json',

img_prefix='data/balloon/train/',

classes=('balloon',)

),

val=dict(

ann_file='data/balloon/val/val.json',

img_prefix='data/balloon/val/',

classes=('balloon',)

),

test=val

)8. 模型微调 (训练一个新的模型)通过命令行工具或者 Python API 完成模型微调,并在验证集上完成测试和评价。可以调整参数,或使用不同的预训练模型来获得更高的评分。训练为了使用新的配置方法来对模型进行训练,你只需要运行如下命令。!python tools/train.py \

mask_rcnn_r50_fpn_2x_coco_balloon3.py \

--work-dir work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3打印信息也包含完整的Config完整的打印信息还是又臭又长的,我其实没仔细看,不过贴出来,是为了更好的了解,openmmlab给我们省了多少事情,让我们专注于我们想做的方向。其中包含了对bbox和segm的测试,此处和配置文件里的以下几行对应test_evaluator = dict(

type='CocoMetric',

ann_file='data/balloon/val/val.json',

metric=['bbox', 'segm'],

format_only=False)最终训练结果02/12 18:47:51 - mmengine - INFO - Epoch(train) [24][27/31] lr: 2.0000e-05 eta: 0:00:01 time: 0.4204 data_time: 0.0212 memory: 4052 loss: 0.1376 loss_rpn_cls: 0.0009 loss_rpn_bbox: 0.0051 loss_cls: 0.0298 acc: 98.9258 loss_bbox: 0.0436 loss_mask: 0.0582

02/12 18:47:52 - mmengine - INFO - Epoch(train) [24][30/31] lr: 2.0000e-05 eta: 0:00:00 time: 0.4153 data_time: 0.0199 memory: 3207 loss: 0.1279 loss_rpn_cls: 0.0008 loss_rpn_bbox: 0.0046 loss_cls: 0.0275 acc: 99.6094 loss_bbox: 0.0400 loss_mask: 0.0550

02/12 18:47:53 - mmengine - INFO - Exp name: mask_rcnn_r50_fpn_2x_coco_balloon3_20230212_184220

02/12 18:47:53 - mmengine - INFO - Saving checkpoint at 24 epochs

02/12 18:47:54 - mmengine - INFO - Epoch(val) [24][ 3/13] eta: 0:00:02 time: 0.1296 data_time: 0.0373 memory: 2253

02/12 18:47:55 - mmengine - INFO - Epoch(val) [24][ 6/13] eta: 0:00:01 time: 0.1313 data_time: 0.0378 memory: 959

02/12 18:47:55 - mmengine - INFO - Epoch(val) [24][ 9/13] eta: 0:00:00 time: 0.1314 data_time: 0.0379 memory: 836

02/12 18:47:55 - mmengine - INFO - Epoch(val) [24][12/13] eta: 0:00:00 time: 0.1304 data_time: 0.0368 memory: 836

02/12 18:47:55 - mmengine - INFO - Evaluating bbox...

Loading and preparing results...

DONE (t=0.00s)

creating index...

index created!

Running per image evaluation...

Evaluate annotation type *bbox*

DONE (t=0.01s).

Accumulating evaluation results...

DONE (t=0.01s).

Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.766

Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.882

Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.882

Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.353

Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.686

Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.804

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.820

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.820

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.820

Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.350

Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.792

Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.856

02/12 18:47:55 - mmengine - INFO - bbox_mAP_copypaste: 0.766 0.882 0.882 0.353 0.686 0.804

02/12 18:47:55 - mmengine - INFO - Evaluating segm...

Loading and preparing results...

DONE (t=0.00s)

creating index...

index created!

Running per image evaluation...

Evaluate annotation type *segm*

DONE (t=0.01s).

Accumulating evaluation results...

DONE (t=0.01s).

Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.780

Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.862

Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.862

Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.454

Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.633

Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.831

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.828

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.828

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.828

Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.450

Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.767

Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.869

02/12 18:47:55 - mmengine - INFO - segm_mAP_copypaste: 0.780 0.862 0.862 0.454 0.633 0.831

02/12 18:47:55 - mmengine - INFO - Epoch(val) [24][13/13]

coco/bbox_mAP: 0.7660 coco/bbox_mAP_50: 0.8820 coco/bbox_mAP_75: 0.8820

coco/bbox_mAP_s: 0.3530 coco/bbox_mAP_m: 0.6860 coco/bbox_mAP_l: 0.8040

coco/segm_mAP: 0.7800 coco/segm_mAP_50: 0.8620 coco/segm_mAP_75: 0.8620

coco/segm_mAP_s: 0.4540 coco/segm_mAP_m: 0.6330 coco/segm_mAP_l: 0.8310☆训练日志结果理解s,m,l对应的是small,middle,large么?- bbox_mAP: (默认)IOU=0.5 到 IOU=0.95, 每隔0.05个IOU计算一次AP,然后求平均值- bbox_mAP_50: IOU=0.5时的AP值- bbox_mAP_75: IOU=0.75时的AP值- bbox_mAP_s/m/l: 即小中大三种不同尺度物体的AP值,其中small是指物体面积小于32 x 32,medium是指面积在32 x 32 - 96 x 96 之间,large是指面积大于96 x 96COCO的图像大小衡量标准:AP50 AP75 AP@[0.5:0.95]为了更细化区分网络的性能,COCO数据集的评价标准中,把IoU的值从50%到95%每隔5%进行了一次划分。具体来说,0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 ,一共十个,每次测试的时候都是在IoU=这个数上测试的。在这10组precision-recall对中,我们对这十个值取平均(我理解为,10个PR曲线下得到的AP值,然后对这10个AP进行平均),得到了一个AP@[0.5:0.95]有时固定IoU的阈值,比如50%或75%,也就是AP50和AP75,意味着IoU为50%或者75%时的AP值。Note:在COCO数据集评价指标中,所有的AP 默认为mAP 。即,AP50=mAP50/AP50=mAP50,AP75=mAP75/AP75=mAP75,以此类推5. 测试以及推理单张图片测试推理config_file_retrain = 'mask_rcnn_r50_fpn_2x_coco_balloon3.py'

checkpoint_file_retrain = 'work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3/epoch_24.pth'

model = init_detector(config_file_retrain,checkpoint_file_retrain,device='cpu')

result_retrain = inference_detector(model,img)

visualizer.dataset_meta = model.dataset_meta # set the visualizer metadata when you changed your dataset

# show the results

visualizer.add_datasample(

'result',

img,

data_sample=result_retrain,

draw_gt=False,

wait_time=0,

)

visualizer.show()重新换一张图片image_path2 = 'data/balloon/val/16335852991_f55de7958d_k.jpg'

img2 = mmcv.imread( image_path2, channel_order='rgb')

result_retrain2 = inference_detector(model,img2)

# show the results

visualizer.add_datasample(

'result',

img2,

data_sample=result_retrain2,

draw_gt=False,

wait_time=0,

)

visualizer.show()image_path2 = 'data/balloon/val/4581425993_72b9b15fc0_b.jpg'

img2 = mmcv.imread( image_path2, channel_order='rgb')

result_retrain2 = inference_detector(model,img2)

# show the results

visualizer.add_datasample(

'result',

img2,

data_sample=result_retrain2,

draw_gt=False,

wait_time=0,

)

visualizer.show()查看result_retrain打印result_retrain,查看训练结果的数据构造result_retrain可以看到,是一个DetDataSample结构

META INFORMATION

scale_factor: (1.0419921875, 1.0416666666666667)

img_shape: (800, 1067)

batch_input_shape: (800, 1088)

pad_shape: (800, 1088)

ori_shape: (768, 1024)

img_path: None

img_id: 0

DATA FIELDS

pred_instances:

META INFORMATION

DATA FIELDS

labels: tensor([0, 0, 0, 0, 0, 0])

masks: tensor([[[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

...,

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False]],

[[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

...,

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False]],

[[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

...,

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False]],

[[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

...,

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False]],

[[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

...,

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False]],

[[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

...,

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False],

[False, False, False, ..., False, False, False]]])

bboxes: tensor([[1.4231e+02, 8.3207e+00, 3.8880e+02, 2.4382e+02],

[6.6667e+02, 2.1259e+00, 9.1862e+02, 2.4966e+02],

[3.5691e+02, 5.5921e-01, 5.6791e+02, 2.2414e+02],

[2.2721e+02, 8.2846e+00, 4.8063e+02, 2.4392e+02],

[3.2557e+02, 2.7744e+02, 8.2625e+02, 7.4915e+02],

[2.7307e+02, 7.4559e+00, 8.8615e+02, 2.3578e+02]])

scores: tensor([0.9997, 0.9996, 0.9996, 0.1296, 0.1079, 0.0531])

) at 0x7f77c326cd90>

ignored_instances:

META INFORMATION

DATA FIELDS

labels: tensor([], dtype=torch.int64)

masks: BitmapMasks(num_masks=0, height=768, width=1024)

bboxes: tensor([], size=(0, 4))

) at 0x7f77c326cc10>

gt_instances:

META INFORMATION

DATA FIELDS

labels: tensor([], dtype=torch.int64)

masks: BitmapMasks(num_masks=0, height=768, width=1024)

bboxes: tensor([], size=(0, 4))

) at 0x7f77c326cca0>

) at 0x7f77c326ca60>进一步查看print(type(result_retrain),'\n',result_retrain.keys())

#

# ['pred_instances', 'ignored_instances', 'gt_instances']

result_retrain.gt_instances.keys()

# ['labels', 'masks', 'bboxes']

result_retrain.ignored_instances.keys()

# ['labels', 'masks', 'bboxes']

result_retrain.pred_instances.keys()

# ['labels', 'masks', 'bboxes', 'scores']

for i in result_retrain.pred_instances.keys():

print(i,result_retrain.pred_instances[i].shape)

print(result_retrain.pred_instances[i][:1])

print()

# labels torch.Size([6])

# tensor([0])

# masks torch.Size([6, 768, 1024])

# tensor([[[False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False],

# ...,

# [False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False]]])

# bboxes torch.Size([6, 4])

# tensor([[142.3062, 8.3207, 388.7980, 243.8157]])

# scores torch.Size([6])

# tensor([0.9997])

for i in result_retrain.pred_instances.keys():

print(i,result_retrain.pred_instances[i].shape)

# print(result_retrain.pred_instances[i][:1])

# print()

# labels torch.Size([6])

# masks torch.Size([6, 768, 1024])

# bboxes torch.Size([6, 4])

# scores torch.Size([6])

for i in result_retrain.gt_instances.keys():

print(i,result_retrain.pred_instances[i].shape)

print(result_retrain.pred_instances[i][:1])

print()

# labels torch.Size([6])

# tensor([0])

# masks torch.Size([6, 768, 1024])

# tensor([[[False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False],

# ...,

# [False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False],

# [False, False, False, ..., False, False, False]]])

# bboxes torch.Size([6, 4])

# tensor([[142.3062, 8.3207, 388.7980, 243.8157]])

result.pred_instances.scores.numpy()

# array([0.99838305, 0.85916036, 0.65062916, 0.5403771 , 0.31220037,

# 0.18796745, 0.10219406, 0.09249002, 0.08700147, 0.07086968,

# 0.06580309, 0.06291567], dtype=float32)

result.pred_instances.scores[0]

# tensor(0.9984)批量测试为了测试训练完毕的模型,你只需要运行如下命令。# generate test results for test images

!python tools/test.py \

mask_rcnn_r50_fpn_2x_coco_balloon3.py \

work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3/epoch_24.pth \

--show-dir show 测试日志会打印出如下日志,loading annotations into memory...

Done (t=0.00s)

creating index...

index created!

Loads checkpoint by local backend from path: work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3/epoch_24.pth

02/12 18:49:36 - mmengine - INFO - Load checkpoint from work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3/epoch_24.pth

02/12 18:49:40 - mmengine - INFO - Epoch(test) [ 3/13] eta: 0:00:09 time: 0.9970 data_time: 0.8184 memory: 891

02/12 18:49:43 - mmengine - INFO - Epoch(test) [ 6/13] eta: 0:00:08 time: 1.1552 data_time: 1.0132 memory: 617

02/12 18:49:44 - mmengine - INFO - Epoch(test) [ 9/13] eta: 0:00:03 time: 0.8990 data_time: 0.7787 memory: 492

02/12 18:49:45 - mmengine - INFO - Epoch(test) [12/13] eta: 0:00:00 time: 0.7696 data_time: 0.6602 memory: 492

02/12 18:49:46 - mmengine - INFO - Evaluating bbox...

Loading and preparing results...

DONE (t=0.00s)

creating index...

index created!

Running per image evaluation...

Evaluate annotation type *bbox*

DONE (t=0.01s).

Accumulating evaluation results...

DONE (t=0.01s).

Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.766

Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.882

Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.882

Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.353

Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.686

Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.804

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.820

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.820

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.820

Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.350

Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.792

Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.856

02/12 18:49:46 - mmengine - INFO - bbox_mAP_copypaste: 0.766 0.882 0.882 0.353 0.686 0.804

02/12 18:49:46 - mmengine - INFO - Evaluating segm...

Loading and preparing results...

DONE (t=0.00s)

creating index...

index created!

Running per image evaluation...

Evaluate annotation type *segm*

DONE (t=0.01s).

Accumulating evaluation results...

DONE (t=0.01s).

Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.780

Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.862

Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.862

Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.454

Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.633

Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.831

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.828

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.828

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.828

Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.450

Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.767

Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.869

02/12 18:49:46 - mmengine - INFO - segm_mAP_copypaste: 0.780 0.862 0.862 0.454 0.633 0.831

02/12 18:49:46 - mmengine - INFO - Epoch(test) [13/13]

coco/bbox_mAP: 0.7660 coco/bbox_mAP_50: 0.8820 coco/bbox_mAP_75: 0.8820

coco/bbox_mAP_s: 0.3530 coco/bbox_mAP_m: 0.6860 coco/bbox_mAP_l: 0.8040

coco/segm_mAP: 0.7800 coco/segm_mAP_50: 0.8620 coco/segm_mAP_75: 0.8620

coco/segm_mAP_s: 0.4540 coco/segm_mAP_m: 0.6330 coco/segm_mAP_l: 0.8310批量测试结果最终的训练结果总结如下批量测试可视化结果(和左侧ground truth相比较)可以利用前面的批量可视化代码模板 部分,调整参数进行类似的可视化,就可以得到类似下面的测试结果。下面先展示截图,再拿其中的一两张来详细看 9. Color splash特效制作在获取到图像的mask之后,请同学们将图像转为灰度图像,并在mask区域将原图像的像素值拷贝到灰度图像上即可完成特效制作。测试样例视频 test_video.mp4 https://www.zhihu.com/video/1609568470168735744有关视频的读写可以参考以下文档:mmcv: 基于opencv的实现https://github.com/open-mmlab/mmcv/blob/master/mmcv/video/io.pyopencv: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html#skvideo: 需要额外安装ffmepg,且需要注意设置压制参数 pix_fmt 为 yuv420p 以支持主流播放器http://www.scikit-video.org/stable/modules/io.html#module-skvideo.io这里写的时候是借鉴了其他班的一个同学的作业【学习了parser 和args的使用方法】调整了参数名,并添加了ground truth的生成路径output_path2 ☆视频读写代码采用MMDET inference中的mmcv的VideoReader读取视频读取标准为fourcc = cv2.VideoWriter_fourcc(*'mp4v'))用mmengine 的track_iter_progress方法逐帧从视频中抽出图像做图片检测,进行实例分割,预测气球的mask,并进行图像处理,最后将每一帧处理好的图片拼接好,使用cv2.VideoWriter还原成视频。☆Color Splash采用对于每帧视频,制作灰度背景和保留检测到的彩色气球时,首先将每帧视频的图片(三维矩阵)分解开BGR(mmcv使用OpenCV的api,不是RGB顺序)三个通道(每一个通道可以看为一个二维矩阵)将每一个通道的二维矩阵数据和预测的mask(也是二维矩阵)做元素对应相乘,然后再重新拼接成一个三通道的三维矩阵,得到一个三维的BGR的mask数据,完成对检测出的气球像素进行提取。然后un_mask = 1 - mask就可以得到非掩码部分,再进行相同处理,就可以完成对背景像素进行提取,并使用bgr2grey方法转换为灰度值,然后两者相加就是一个color splash的图片,这就是视频里抽取的该帧图片对应的处理好的帧图像.代码实现import argparse

import numpy as np

import cv2

import mmcv

from mmdet.apis import inference_detector, init_detector

from mmdet.registry import VISUALIZERS

from mmdet.utils import register_all_modules

from mmengine import track_iter_progress

#  https://mmdetection.readthedocs.io/en/3.x/user_guides/inference.html

#  https://github.com/enkilee/mmcv_study/blob/main/%E4%BD%9C%E4%B8%9A%E4%BA%8Cmmdetection/color_splash.py

# https://github.com/open-mmlab/mmcv/blob/master/mmcv/video/io.py

def parse_args():

parser = argparse.ArgumentParser(description='MMDetection balloon color splash video demo')

parser.add_argument('video_path', help='path of video file ')

parser.add_argument('model_config', help='path of config file ')

parser.add_argument('checkpoint_path', help='path of fine-tuned checkpoint file')

parser.add_argument(

'--device', default='cuda:0', help='Device used for inference')

parser.add_argument(

'--score_thr', type=float, default=0.8, help='Bbox score threshold')

parser.add_argument('--output_path', type=str, help='path of processed video file')

parser.add_argument('--output_path2', type=str, default=False, help='path of ground truth video file')

parser.add_argument('--display_video', action='store_true', help='display the processed video')

parser.add_argument(

'--wait-time',

type=float,

default=1,

help='The interval of display (s), 0 is block, default is 1')

args = parser.parse_args()

return args

def main():

register_all_modules()

args = parse_args()

assert args.output_path or args.display_video, \

('Please specify at least one operation (save/show the '

'video) with the argument "--output_path" or "--display_video"')

# print(args.model_config,args.checkpoint_path)

model = init_detector(args.model_config,

args.checkpoint_path, device=args.device)

video_reader = mmcv.VideoReader(args.video_path)

video_writer = None

video_writer2 = None

if args.output_path:

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

video_writer = cv2.VideoWriter(

args.output_path, fourcc, video_reader.fps,

(video_reader.width, video_reader.height))

if args.output_path2:

video_writer2 = cv2.VideoWriter(

args.output_path2, fourcc, video_reader.fps,

(video_reader.width, video_reader.height))

for frame in track_iter_progress(video_reader):

# frame read in bgr not rgb

result = inference_detector(model, frame)

mask = None

masks = result.pred_instances.masks# result[1][0]

if args.output_path2:

gt_mask = None

gt_masks = result.gt_instances.masks

# take mask of balloon for compute

for i in range(len(masks)):

if result.pred_instances.scores[i] >= args.score_thr:

if not mask is None:

mask = mask | masks[i]

else:

mask = masks[i]

if args.output_path2:

if not gt_mask is None:

gt_masks = gt_mask | gt_masks[i]

else:

gt_mask = gt_masks

# typeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'Tensor'

mask = mask.cpu().numpy()

if args.output_path2:

# print(gt_masks)

gt_mask = gt_masks.cpu().numpy()

# change color of background and balloon

gt_masked_b = frame[:, :, 0] * gt_mask

gt_masked_g = frame[:, :, 1] * gt_mask

gt_masked_r = frame[:, :, 2] * gt_mask

gt_masked = np.concatenate([gt_masked_b[:, :, None],

gt_masked_g[:, :, None],

gt_masked_r[:, :, None]], axis=2)

gt_un_mask = 1 - gt_mask

gt_frame_b = frame[:, :, 0] * gt_un_mask

gt_frame_g = frame[:, :, 1] * gt_un_mask

gt_frame_r = frame[:, :, 2] * gt_un_mask

gt_frame = np.concatenate([gt_frame_b[:, :, None], gt_frame_g[:, :, None],

gt_frame_r[:, :, None]], axis=2).astype(np.uint8)

gt_frame = mmcv.bgr2gray(gt_frame, keepdim=True)

gt_frame = np.concatenate([gt_frame, gt_frame, gt_frame], axis=2)

gt_frame += gt_masked

cv2.namedWindow('The ground truth video', 1)

mmcv.imshow(gt_frame, 'video', args.wait_time)

video_writer2.write(gt_frame)

# change color of background and balloon

masked_b = frame[:, :, 0] * mask

masked_g = frame[:, :, 1] * mask

masked_r = frame[:, :, 2] * mask

masked = np.concatenate([masked_b[:, :, None], masked_g[:, :, None], masked_r[:, :, None]], axis=2)

un_mask = 1 - mask

frame_b = frame[:, :, 0] * un_mask

frame_g = frame[:, :, 1] * un_mask

frame_r = frame[:, :, 2] * un_mask

frame = np.concatenate([frame_b[:, :, None], frame_g[:, :, None], frame_r[:, :, None]], axis=2).astype(np.uint8)

# background gray color with 3 channels

frame = mmcv.bgr2gray(frame, keepdim=True)

frame = np.concatenate([frame, frame, frame], axis=2)

frame += masked

if args.display_video:

cv2.namedWindow('The processed video', 0)

mmcv.imshow(frame, 'video', args.wait_time)

if args.output_path:

video_writer.write(frame)

if video_writer:

video_writer.release()

if video_writer2:

video_writer2.release()

cv2.destroyAllWindows()

if __name__ == '__main__':

main()调用代码如下,这里,由于检测视频是没有ground truth的,所以就没法生成了,output_path2 就没有使用# generate result.mp4 with trained model and test_video.mp4

!python video3.py \

--output_path result.mp4 \

test_video.mp4 \

mask_rcnn_r50_fpn_2x_coco_balloon3.py \

work_dirs/mask_rcnn_r50_fpn_2x_coco_balloon3/epoch_24.pth

# --output_path2 test_video_gt.mp4 \处理前的单帧图片处理后的单帧图片处理后的视频https://www.zhihu.com/video/1609285186465878017使用视频生成gif以及查看生成的视频可能是API没搞明白,生成的gif很大,比原始视频都大,最终展示结果的gif是用在线网站生成的。我们先看结果,然后后面用我的代码,来尝试下自己生成gif和修改参数。另一种思路是生成视频时生成gif,写本文时刚想到的,应该好操作一些,待会找几个链接,有空做做试试。【Todo list +1】# to show the results, convert the mp4 to gif

# since the generated gif is too big, I use online website to convert the mp4 videos to gifs.

!pip install moviepy

!pip install ez_setup

from moviepy.editor import VideoFileClip

videoClip = VideoFileClip("result.mp4")

videoClip.write_gif("result.gif") # 15M to 150M too big

# printed information

# MoviePy - Building file result.gif with imageio.做完这些,我特别想在notebook中看一下处理的视频的,但是不知为何,无法播放,读者朋友们可以和我说一下。所以下面我列举下我尝试的集中方法,参考链接就不贴了。OpenCV# this works but open the video outside

import cv2

import numpy as np

# Create a VideoCapture object and read from input file

# If the input is the camera, pass 0 instead of the video file name

cap = cv2.VideoCapture('result.mp4')

# Check if camera opened successfully

if (cap.isOpened()== False):

print("Error opening video stream or file")

# Read until video is completed

while(cap.isOpened()):

# Capture frame-by-frame

ret, frame = cap.read()

if ret == True:

# Display the resulting frame

cv2.imshow('Frame',frame)

# Press Q on keyboard to exit

if cv2.waitKey(25) & 0xFF == ord('q'):

break

# Break the loop

else:

break

# When everything done, release the video capture object

cap.release()

# Closes all the frames

cv2.destroyAllWindows()IPython Videofrom IPython.display import Video

Video('result.mp4')IPython HTML1from IPython.display import HTML

HTML("""

""")IPython HTML2from IPython.display import HTML

from base64 import b64encode

def play(filename):

html = ''

video = open(filename,'rb').read()

src = 'data:video/mp4;base64,' + b64encode(video).decode()

html += '' % src

return HTML(html)

play('result.mp4')以上~~~~本系列专栏:OpenMMLab AI 实战营 - 知乎打卡笔记作业和实践个人github 今日心中有光下面放几句今天看到的句子吧It is not easy to meet each other in such a big world.世界这么大,能遇见,不容易。The best feeling in the world is knowing someone is missing you.世界上最好的感觉就是知道有人在想你。编辑于 2023-02-16 15:57・IP 属地韩国mmdetectionopenmmlab实例分割​赞同 9​​5 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录CV with OpenMMLab原专栏名: OpenMMLab AI

Balloon(英文单词)_百度百科

oon(英文单词)_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心Balloon是一个多义词,请在下列义项上选择浏览(共3个义项)添加义项收藏查看我的收藏0有用+10Balloon播报讨论上传视频英文单词Balloon,英语单词,名词,意为“(美、印、泰)巴隆(人名)”' 气球'。中文名气球外文名Balloon词    性名词目录1单词发音2短语搭配3双语例句单词发音播报编辑美[bəˈluːn] [1]短语搭配播报编辑balloon loop环形回车道Balloon maturity期末放气式偿还 ; 到期大额偿还 ; 气球型期限 ; 期末放气式归还balloon paper气球用纸 ; 球用纸balloon loan漂浮式贷款 ; 气球贷款 ; 气球贷 ; 百龙信贷captive balloon[气象]系留气球meteorological balloon气象用气球 ;[气象]气象探测气球 ; 气象控测气球barrage balloon[航]阻塞气球 ; 防空拦阻气球 Balloon Ride气球观光 ; 气球漫游 ; 气球旅行 balloon occlusion气囊扩张术 ; 腹主动脉 ; 气囊阻塞 ; 球囊封堵 [1]双语例句播报编辑Which coloured balloon do you like?你喜欢哪个颜色的气球?She affirms this balloon being her.她肯定这是她的气球。Whose balloon is this?这是谁的气球?。 [1]新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

balloon是什么意思_balloon怎么读_balloon翻译_用法_发音_词组_同反义词_气球-新东方在线英语词典

balloon是什么意思_balloon怎么读_balloon翻译_用法_发音_词组_同反义词_气球-新东方在线英语词典

英语词典 -

日语词典

首页 > 英语词典 > 字母单词表 > b开头的单词 > balloon

balloon

听听怎么读

英 [bəˈlu:n]

美 [bəˈlun]

是什么意思

n.气球;热气球;[建]球饰;vt.膨胀,涨大;乘热气球飞行;使激增;adj.气球状的;(货物等)分量轻而体积大的;(分期付款)最后一笔大数目的;vi.乘气球飞行;膨胀;激增;

变形

复数:balloons过去式:ballooned过去分词:ballooned现在分词:ballooning第三人称单数:balloons

双语释义

n.(名词)[C]气球 a large bag of strong light material filled with gas or heated air so that it can float in the air

英英释义

balloon[ bə'lu:n ]n.small thin inflatable rubber bag with narrow necklarge tough nonrigid bag filled with gas or heated airv.ride in a hot-air balloon"He tried to balloon around the earth but storms forced him to land in China"become inflated"The sails ballooned"同义词:inflatebillow

学习怎么用

词汇搭配

用作名词 (n.)动词+~blow up a balloon吹气球fly a balloon放气球puncture a balloon刺破气球形容词+~colored balloons彩色气球介词+~in a balloon乘气球

词组短语

air balloon气球hot-air balloon n. 热气球 weather balloon气象气球;探空气球balloon angioplasty [外科学]气囊血管成形术;球囊成形术(等于percutaneous transluminal angioplasty) balloon pump球囊泵;气囊泵balloon borne球载反射器balloon flower桔梗花like a lead balloon毫无效果,毫无作用(意指如铅气球无法飞升) balloon catheter气囊导管,气泡式导管 更多收起词组短语

双语例句

用作名词(n.)A balloon floated across the sky.有个气球从空中飘过。用作及物动词(vt.)He balloons his cheeks when he is hesitant.他迟疑不决时会鼓起双颊。用作不及物动词(vi.)He tried to balloon around the earth but storms forced him to land in China.他试图乘气球做环球旅行,但风暴迫使他降落在中国。Our expenses had ballooned.我们的开销大大增加了。Her skirt ballooned in the wind.她的裙子让风吹得鼓起来了。

权威例句

Achieving Rapid Door-To-Balloon TimesTotal enteroscopy with a nonsurgical steerable double-balloon method ☆Neointimal formation after balloon-induced vascular injury in Yucatan minipigs is reduced by oral rapamycinA Comparison of Balloon-Expandable-Stent Implantation with Balloon Angioplasty in Patients with Coronary Artery Disease — NEJMCatheterization of the heart in man with use of a flow-directed balloon-tipped catheter.Dynamics of blood flow and oxygenation changes during brain activation: the balloon model.Relationship of symptom-onset-to-balloon time and door-to-balloon time with mortality in patients undergoing angioplasty for acute m...Lack of effect of warfarin on the restenosis rate or on clinical outcome after balloon coronary angioplasty.Randomised placebo-controlled and balloon-angioplasty-controlled trial to assess safety of coronary stenting with use of platelet gl...Changes in collateral channel filling immediately after controlled coronary artery occlusion by an angioplasty balloon in human subj...

同义词surge

proliferate 同根词balloonist

ballooning

balloon b开头的单词byzantine empire

by weight

by word of mouth

by yourself

bypass operation

by way

by way of

by way of...

by water

by volume

by virtue of

by twos 词汇所属分类《绝望的主妇》(Desperate Housewives) 全八季词频大全

老友记(六人行)第一季全集

Friends 老友记 第二季

Friends·老友记分频单词书·上册

小黄人系列完整四部 Despicable Me 1/2/3/Minions 神偷奶爸词汇全

老友记1到7季单词 字母词汇表更多c开头的单词coffee pot

Czechs

Czechoslovakian

Czechoslovakia

czechoslovak

Czechic

o开头的单词ozostomia

ozonous

ozonosphere

ozonometer

ozonizing

ozonizes

z开头的单词zythum

zymurgy

zymotic

zymosterol

zymosis

zymoses 分类词汇表更多服务三农yucca

yam

windmill

wheat

weeds

weed killer

石油行业wildcat

well

Vaseline

turntable

travelling block

tanker

其他词汇书zymurgy

zymurgy

zymurgy

zymoscope

zymology

zygote 人名姓氏表更多男zack

zachary

Zachariah

young

York

Yates

女Zola

Zoe

Zenobia

Zenia

Zena

Zandra

男/女Yong

wynn

winter

willie

Whitney

wally 新东方柯林斯词典 托福考试练习 雅思预测2024年雅思考试重点题汇总[听力|阅读|写作|口语]

2024年2月雅思考试听力|阅读|写作|口语重点题汇总

2024年1月雅思考前必刷题听力|阅读|口语|写作汇总

2024年3月雅思考试听力|阅读|写作|口语重点题汇总

[雅思考前必刷]2024年1月雅思口语考前必刷题Part 2&3地点类

2020年9月雅思口语新题part1:shopping

2021年1月雅思口语新题part2:你认为可以教别人的技能

[雅思考前必刷]2024年1月雅思口语考前必刷题Part 2&3事件类

2020年9月雅思口语新题part1:Activity

2021年1月雅思口语新题part2:你以前看过的现场体育赛事

关于我们

商务合作

广告服务

代理商区域

客服中心

在线留言

合作伙伴

人员招聘

联系我们

网站地图

© 2000-2024 koolearn.com 版权所有    全国客服专线:400-676-2300

京ICP证050421号 京ICP备05067669号-2  京公安备110-1081940  网络视听许可证0110531号

新东方教育科技集团旗下成员公司

Just a moment...

a moment...Enable JavaScript and cookies to conti